1

是否有直接的方法来跟踪 Android (java) 中的游戏时间?例如,为了无论帧速率如何都保持运动流畅,我需要考虑自上一帧以来经过的时间量。这在 XNA 中很容易做到(因为它已经为您设置好了),但即使没有游戏引擎,您仍然可以在 C# 中使用 timeSpan。我尝试查找 java 的时间跨度,但它并没有拿出太多或那么长的手。是否存在处理帧到帧时序的等效的简写方式?

4

2 回答 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 回答