那里有很多mousefollower教程。它们中的大多数都有一个简单的公式来缓和运动:
x += (tx - x) / interp;
y += (ty - y) / interp;
(tx = 目标位置,x = 实际位置,interp > 1)
这使得跟随者一开始走得很快,然后慢慢减速到目标位置。
我如何更改公式,以便我可以定义自定义加速度、自定义减速度和最大速度之间的运动?一开始我会对增加的加速度感到满意。
谢谢!
汉斯
那里有很多mousefollower教程。它们中的大多数都有一个简单的公式来缓和运动:
x += (tx - x) / interp;
y += (ty - y) / interp;
(tx = 目标位置,x = 实际位置,interp > 1)
这使得跟随者一开始走得很快,然后慢慢减速到目标位置。
我如何更改公式,以便我可以定义自定义加速度、自定义减速度和最大速度之间的运动?一开始我会对增加的加速度感到满意。
谢谢!
汉斯
加速度是速度随时间的变化。因此,在一维空间中,要应用恒定速度,您可以:
v += a * dt;
x += v * dt;
在哪里:
a
是加速度(常数)v
是速度x
是 x 位置dt
是时间步长,即更新之间的时间你会为减速做类似的事情,除了a
现在是负面的。
要设置最大速度,您只需要对 进行条件检查v
,也许:
v = MIN(v_max, v);
v_max
你的最大允许速度在哪里(一个常数)。
在 2D 中,您需要考虑行进方向:
x += v * cos(theta);
y += v * sin(theta);
我留给你计算theta
...