gpt4 book ai didi

java - 如何在Java中获取准确的deltaTime

转载 作者:行者123 更新时间:2023-12-01 18:04:34 25 4
gpt4 key购买 nike

不久前我刚刚学完 Java,现在正在开发我的第一个 Java 游戏。问题是当我尝试在主循环中获取增量时间时,增量时间通常为 0。我该如何解决这个问题?我的主循环代码:

double deltaTime=0;
while(!windowIsClosed){ //main loop
double beginTime=System.nanoTime()/1e9; //divide by 1e9 because I want time variables to be in seconds

animations(deltaTime);
repaint();


double endTime=System.nanoTime()/1e9;
deltaTime=endTime-beginTime;

最佳答案

您在 while 循环开始时覆盖了 beginTime,因此您现在计算的是动画完成所需的时间。如果您想计算启动 while 循环的增量,您应该将 beginTime 的赋值放在 while 之上。

此外,如果您使用 Java 8,您可以使用新的 Date/Time-API 并利用 Instant 等类来存储开始和结束时间,并使用 Duration 来计算其中两个时间点之间的持续时间:

Duration deltaTime = Duration.ZERO;
Instant beginTime = Instant.now();
while(!windowIsClosed){

animations(deltaTime);
repaint();

deltaTime = Duration.between(beginTime, Instant.now());
}

关于java - 如何在Java中获取准确的deltaTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com