随时间增加速度



我正在玩一个游戏,你试图逃离投射物,但它们的速度随着时间的推移而增加。我想出了这个解决方案:

vel += vel*0.01
x_coordinate += vel

一开始它很好,但一段时间后它变得非常快,打破了比赛。有没有其他方法可以让我在一段时间内提高速度,并将其限制在某个水平?

您应该以恒定的速率增加速度。

vel += 0.01
x_coordinate += vel

或者,如果你想在某个点限制速度,一个更好的选择是放慢速度的增长速度。

acc = 0.01
vel += acc
x_coordinate += vel
acc *= 0.9

您需要的是加速:

速度是位置随时间的变化。加速度是速度随时间的变化。

对于恒定的速度,你基本上可以将你的速度添加到你的位置,你将有一个恒定的速度移动:

假设位置和速度是矢量:

pos = vector(0, 0)
vel = vector(1, 1)
pos += vel

如果你有一些加速度,问题仍然很简单。在你改变位置之前,你应该通过加速度来改变速度。

假设位置和加速度,速度是矢量:

pos = vector(0, 0)
vel = vector(1, 1)
acc  = vector(1, -1)
vel += acc
pos += vel

现在你有了加速运动。

请参阅:https://en.wikipedia.org/wiki/Euler_method

最新更新