我有一个应用程序,我想暂停一下。重要的是,在两次自动交互之间更好地显示图形元素/更改。
我尝试使用上面的代码暂停2分钟,但它会在方法开始时暂停,而不是在方法内的2行精确代码行之间。
try {
Thread.sleep(2000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
答案 0 :(得分:2)
Libgdx期望渲染循环定期运行(大致以屏幕刷新率)并每次重新绘制屏幕。因为,当你的应用程序可能"看起来"暂停,它实际上不应该暂停。应该忙于更新屏幕,更新动画,响应后退键等等。
因此,您需要更明确地决定在此窗口期间阻止的内容。只是回应输入?添加新元素?然后你应该在窗口中跳过这些元素。
long endPauseTime = 0;
当您决定要暂停时:
endPauseTime = System.currentTimeMillis() + (2 * 1000); // 2 seconds in the future
然后在你的渲染calback:
if (endPauseTime < System.currentTimeMillis()) {
// non-paused mode, so check inputs or whatever
} else {
// paused mode, so skip some things ..
}