我有一个应用程序,在其中我希望暂停一下。这很重要,以便在两个自动交互之间更好地展示图形元素/更改。
我尝试使用上面的代码进行2分钟的暂停,但它会在方法开始时暂停,而不是在方法内部两行代码之间暂停。
try {
Thread.sleep(2000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
Libgdx希望渲染循环定期运行(大约与屏幕刷新率相同),并在每次重新绘制屏幕时重新绘制。因此,尽管您的应用程序可能看起来“暂停”,但实际上它不应该被暂停。它应该忙于更新屏幕、更新动画、响应后退键等。
因此,您需要更明确地决定在此窗口期间阻止了什么。只是对输入做出反应?添加新元素?那么您应该在窗口期间跳过这些元素。
long endPauseTime = 0;
当您决定暂停时:
endPauseTime = System.currentTimeMillis() + (2 * 1000); // 2 seconds in the future
if (endPauseTime < System.currentTimeMillis()) {
// non-paused mode, so check inputs or whatever
} else {
// paused mode, so skip some things ..
}
System.currentTimeMillis()
,如果他在应用程序中使用了Screen
,则可以在其render(float)
方法中接收到delta
时间,其中1.0f
表示1秒。否则,他应该只使用Gdx.graphics.getDeltaTime()
来更新计时器。 - EpicPandaForce