java - 暂停游戏循环?

标签 java clock

所以我有这段代码,在游戏循环中设置 dt (clock 的类型为 Clock):

    // set delta time
    float currentTime = clock.getElapsedTime().asSeconds();
    float dt = currentTime - lastTime;
    // ...
    lastTime = currentTime;

但是,当比赛暂停时,时钟仍然运行。因此,当游戏暂停时,dt 会变大。我该如何避免这种情况?

最佳答案

一种可能的基本方法可能类似于以下方法(伪代码):

var elapsed = current - previous;
if(elapsed > clampOverElapsed) {
    elapsed = clampOverElapsed;
}

其中 clampOverElapsed 设置为合理的值,例如 25 毫秒。
这样,通过在循环中进行控制,您应该很好地处理暂停以及不合时宜的较长迭代,而无需关心大 elapsed 值的来源,这样您就不必显式

关于java - 暂停游戏循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27338060/

相关文章:

networking - 无需 NTP 的小尺寸时钟同步

在设备休眠时工作的 Android 定时器

java - 如何调试运行在两个不同 Tomcat 服务器上的两个应用程序?

java - Hibernate继承在父级之后插入子级

java - 以螺旋顺序打印二维数组

java - 不会更新值

c++ - 为什么我的功能不算数?

Git不使用计算机时钟来提交

java - Android EditText 光标错误位置

java - 使用 Primefaces 在文件系统上上传文件