【问题标题】:libGDX pause running for some secondslibGDX 暂停运行几秒钟
【发布时间】:2015-05-17 21:02:03
【问题描述】:

我有一个应用程序,我想在其中稍作停顿。让图形元素/更改在两个自动交互之间更清晰可见是很重要的。

我尝试使用上面的代码暂停 2 分钟,但它会导致方法开始时暂停,而不是在方法内的 2 行确切的代码之间。

try {
    Thread.sleep(2000);
} catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}

【问题讨论】:

  • 你试过wait()和notify()吗?

标签: java android libgdx


【解决方案1】:

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() 来更新计时器
  • 是的,我已经实现了 Screen。
猜你喜欢
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多