我在Android上玩游戏,它在一个线程中运行。在run()和onDraw()中绘制工作。很简单。
然而,在Droid上它的运行速度比在G1上快得多。
无论设备如何,确保游戏以相同的速度运行的最佳做法是什么?
答案 0 :(得分:4)
这通常由使用“游戏循环”(http://gamedesign.wikicomplete.info/game-loop)的组合控制,其中代码循环并以定时间隔绘制帧。当使用不同的设备时,帧可能需要更长的时间来绘制,因此通常通过动态调整“细节水平”(LOD)和/或使用“帧跳过”来处理,从而不会在每个循环中绘制帧。事实上,还有另一个问题是演示基本算法:
Allegro 5 game: game loop that runs at constant speed?
-Oisin
答案 1 :(得分:1)
跑得更快通常是件好事!确保游戏在任何设备上正确运行的最佳方法是将更新基于自上次更新以来经过的时间。这可以让游戏在更快的设备上运行时保持一致。
否则你可以在更快的设备上添加一个睡眠呼叫 - 但是为什么不能在你可以的时候运行得更顺畅。