【问题标题】:matter.js | Fixed Update problem for applyForce问题.js |修复 applyForce 的更新问题
【发布时间】:2020-09-21 16:07:53
【问题描述】:

我正在使用 matte.js 使用 applyForce 进行玩家移动。
我正在检查按下的键并向我的游戏循环中的角色施加力,通常每秒调用 60 次。但是当 FPS 下降时,问题就开始了。如果每秒只调用循环 30 次,我如何在 FPS 为 60 时应用相同的量?
有没有类似 Unity 中的 FixedUpdate 的类似物?

【问题讨论】:

  • 有趣的问题。让我想起游戏中存在基于玩家帧率的物理错误(我认为是 Doom 2016)

标签: javascript physics matter.js


【解决方案1】:

这是游戏开发中的经典问题。解决此问题的一种方法不是在每次更新中都施加相同的力,而是可以检查时钟以查看自上次更新以来已经过去了多少时间(例如,在每次更新中调用 performance.now())。然后将你想要增加的力量乘以已经过去的时间。

我认为这并不适用于所有情况。特别是如果您有小型、快速移动的对象,您可能会发现对象相互夹杂。但我认为这对于大多数情况来说已经足够了,你应该能够手动编写代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-31
    • 2020-11-15
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多