Android游戏循环,如何控制速度和帧速率

Ben*_* Mc 18 android cpu-speed

我已经为Android编写了一款游戏,我在Dev Phone上测试了它.它运行得很好,速度恰到好处.但是,我确信手机CPU的速度越来越快.它们可能已经比开发电话更快.

我如何确保我的游戏以完全相同的速度运行,无论设备是什么或运行速度有多快?你知道任何技巧吗?我应该每次检查循环顶部的某种计时器吗?

我想我指的是帧速率 - 但主要是我的游戏在主游戏循环中运行的速度.

任何理论或经验都会很棒!谢谢.

Lau*_*uri 15

如果您的目标是特定帧速率,那么基本的想法是您应该有一个计时器或线程,以期望的间隔执行游戏的tick方法.对于定时器,实现非常简单:只需安排定时器以定期执行.使用线程时,如果线程运行速度超过所需的帧速率,则必须使线程在连续的滴答之间进入休眠状态.

然而,仅仅这一点并不能产生最好的结果,因为间隔可以在帧之间稍微变化.关于这个问题有一篇非常好的文章:http://gafferongames.com/game-physics/fix-your-timestep/.

此外,已经有比开发电话1更慢更快的Android手机.因此,如果您的目标是所有Android设备,则必须为这两种情况做好准备.如果您的游戏不是那么重CPU,那么可能是您可以在所有设备上实现所需的帧速率.但是如果你不限制帧速率,你的游戏在速度更快的Android手机上会过快.