0

当我的应用程序处于物理模拟中间时,我希望它以恒定的 FPS(例如 30)运行,因为这会在某种程度上影响物理。但是,计算结束当前“帧”所需的时间并调用 Thread.sleep(1000/FPS - time already花费) 是一个坏主意,因为操作系统调度会在 FPS 中产生相当高的错误/不准确性。另一个坏主意是让模拟根本不休眠,而只是运行 while(!time_has_come) time += System.nanotime(),因为它会浪费 CPU 资源和电池。是否有更准确且不占用资源的方法来创建一个计时器,该计时器将以恒定的 FPS 为我的模拟提供脉冲?

4

1 回答 1

0

我不确定它有多准确,但是该类的scheduleAtFixedRate方法Timer应该可以满足您的需要。

http://developer.android.com/reference/java/util/Timer.html#scheduleAtFixedRate%28java.util.TimerTask,%20long,%20long%29

于 2013-09-08T23:13:45.363 回答