我正在写一个游戏,我看到 FPS 算法不能正常工作(当他必须计算更多时,他睡得更久......)所以,问题很简单:如何计算 sleep 时间有正确的 FPS?
我知道以微秒为单位更新游戏一帧需要多长时间,当然也知道我想要达到的 FPS。
我疯狂地寻找一个简单的例子,但我找不到....
代码可能是 Java、C++ 或伪...
最佳答案
您应该花在渲染一帧上的时间是 1/FPS
秒(如果您的目标是 10 FPS,则您应该在每一帧上花费 1/10 = 0.1 秒)。因此,如果渲染花费了 X
秒,您应该“hibernate ”1/FPS - X
秒。
将其转换为例如毫秒,您会得到
ms_to_sleep = 1000 / FPS - elapsed_ms;
如果出于某种原因渲染帧所花费的时间超过 1/FPS
,您将获得负 sleep 时间,在这种情况下您显然只是跳过了 sleep 。
关于java - 游戏开发 : How to limit FPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3102888/