播放器移动速度越快,deltaTime越高

时间:2015-02-01 11:59:43

标签: javascript game-loop

这是第一个版本,我的增量为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

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

1 个答案:

答案 0 :(得分:0)

当你的delta减少时,速度会增加,这是合乎逻辑的 在进行2个半步积分后,清除力 所以,既然你没有在其他地方再次设置它,你正在做的是在第一个刻度线上delta期间施加力(改变速度),然后不再施加力。
因此,首先滴答后的速度会根据增量变化,然后速度保持在该水平。

要纠正这一点,我必须知道你想要建模的东西 如果您试图模拟由于在非常短的时间内施加的力而产生的初始“冲击”,只需在F期间将punchDuration应用于速度 - 这与设置初始化非常相似速度-。