是否有直接的方法来跟踪 Android (java) 中的游戏时间?例如,为了无论帧速率如何都保持运动流畅,我需要考虑自上一帧以来经过的时间量。这在 XNA 中很容易做到(因为它已经为您设置好了),但即使没有游戏引擎,您仍然可以在 C# 中使用 timeSpan。我尝试查找 java 的时间跨度,但它并没有拿出太多或那么长的手。是否存在处理帧到帧时序的等效的简写方式?
问问题
135 次
2 回答
0
那么有一个 Handler 类,它允许你运行一个具有一定延迟的线程。
postDelayed(Runnable action, long delayMillis)
您可以使用它为线程设置特定的游戏时间。在这里将 delayMillis 设置为 33 会略高于每秒 30 帧。我很确定那里有适用于 Android 的游戏库,但是,对于此类问题会更有帮助。
您可以尝试手动获取每个实例之间的时间,如下所示:
long lastTime = 0;
Thread {
if (lastTime != 0)
elapsedTime = System.getTimeMillis() - lastTime;
lastTime = System.getTimeMillis;
}
于 2012-06-27T05:41:34.007 回答
0
您的游戏逻辑应该在独立于帧速率的单独线程中运行。然后在刷新屏幕时,您只需在当前状态下绘制对象。
当您确实需要能够测量时间时,请使用 SystemClock.elapsedRealTime
于 2012-06-27T05:56:49.407 回答