我正在开发一款单人游戏。我使用的引擎是我自己的。我对如何针对不同的FPS调整游戏感到困惑。 无论计算机可以使用多少帧,我都希望看到相同的游戏速度。我的意思是如果你的计算机足够强大,每秒可以绘制1000次,或者只有20帧,那么你的游戏速度应该是相同的。
我试图根据FPS自动更改移动参数,但似乎无法连接它。
实际上,我有一些决定,但它们并不理想:
第一个是将FPS限制为30(例如),因此,即使是性能不佳的计算机也可以正确显示游戏。 - 这是一个非常简单的决定,但运动的平滑性并不是最好的。
第二个:游戏循环(因此,所有计算)都以最大频率(60 FPS)进行,但屏幕根据计算机性能以一定速率绘制。 - 在这种情况下,RAM负载更重。
答案 0 :(得分:0)
与delta时间无关的帧率(自上次渲染以来经过的时间)是解决方案。
这是一篇关于delta时间的详细文章,其中包含大量代码示例: https://isaacsukin.com/news/2015/01/detailed-explanation-javascript-game-loops-and-timing我认为您不需要像文章所描述的那样深入解决方案。
以下是对此概念的解释: https://www.reddit.com/r/pcmasterrace/comments/29qcqr/an_explanation_of_game_loops_fps_and_delta_time/