问题描述
我正在使用something.js和applyForce
进行玩家移动。
我正在检查按键并在我的游戏循环中向我的角色施加力量,这通常称为每秒60次。但是问题开始于FPS下降。如果每秒仅调用一次循环30次,那么当FPS为60时我该如何申请强制使用相同的数量?
有没有像Unity中的FixedUpdate类似物?
解决方法
这是游戏开发中的经典问题。解决此问题的一种方法是,不必在每次更新中都施加相同的作用力,而是可以检查时钟以查看自上次更新以来经过了多少时间(例如,在每次更新中调用performance.now()
)。然后,将要添加的力乘以经过的时间。
我认为这在所有情况下都无法完美运行。尤其是如果您有小的快速移动的物体,则可能会发现物体相互夹住。但是我认为这对于大多数情况已经足够了,您应该可以手动对其进行编码。