opengl android时间太快了

时间:2013-01-02 20:11:30

标签: android opengl-es time

我正在努力为我的赛车游戏使用android和open gl。

我的代码现在是:

 deltaTime = (System.currentTimeMillis() + startTime) / 1000000000000.0f;
 startTime = System.currentTimeMillis();
 tickTime += deltaTime;
 DecimalFormat dec = new DecimalFormat("#.##");
 Log.d("time", dec.format(tickTime/100));

但它有点太快了。

2 个答案:

答案 0 :(得分:2)

你可能想看一下Android Breakout:

http://code.google.com/p/android-breakout/source/browse/src/com/faddensoft/breakout/GameState.java#1001

计算类似,但请注意它使用System.nanoTime(),它使用单调时钟。您不想使用使用挂钟的System.currentTimeMillis()。如果设备连接到网络,则可以更新挂钟,这可能导致向前或向后跳跃。

该代码还包括一个(禁用的)帧率平滑实验,这个实验看起来并不重要。

我认为你发现,这种方法的关键是要认识到帧之间的时间间隔不是恒定的,你需要根据实际经过的时间更新游戏状态,而不是固定的显示概念更新频率。

答案 1 :(得分:0)

由于你在毫秒内工作,你不应该除以1000f而不是1000000000000.0f吗?