玩家移动速度更快,增量时间更长

Player moves faster with higher deltaTime

本文关键字:时间 移动 速度 玩家      更新时间:2023-09-26

这是第一个版本,我的增量为 1/60:http://jsfiddle.net/ocdrd0uy/

这是第二个版本,我唯一更改的是增量到 1/20:http://jsfiddle.net/ocdrd0uy/1/

var delta = 1 / 60; --> var delta = 1 / 20;

我只是像这样计时:

x = x + v * dt * 0.5
v = v + (F * 1/m) * dt
x = x + v * dt * 0.5

为什么玩家的移动速度更快,增量越高?

当你的增量降低时,速度会增加,这是非常合乎逻辑的。
完成 2 个半步积分后,清除力。
因此,由于您没有在其他地方再次设置它,因此您正在做的是在第一次刻度的delta期间施加力(以改变速度),然后不再施加力。
因此,第一次即时报价后的速度会根据增量而变化,然后速度保持在该水平。

为了纠正这一点,我必须知道您要建模的内容。
如果您正在尝试模拟由于在很短的时间内施加的力而导致的初始"冲击力",只需在punchDuration期间对速度施加F - 这与设置初始速度非常相似。