2011-12-13 61 views
0

那里有很多mousefollower教程。其中大部分都设有一个简单的公式用于缓和运动:鼠标追随者缓进/退出

x += (tx - x)/interp; 
y += (ty - y)/interp; 

(TX =目标位置,X =实际位置,interp的> 1)

这使得从动走非常快的开头,然后缓慢减速到目标位置。

如何更改公式,以便我可以定义自定义加速度,自定义减速度和最大速度之间的运动?一开始,我会很满意加速度。

谢谢!

Hans

回答

0

加速度是速度随时间的变化。因此,在一维,申请一个恒定的速度,你会怎么做:

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 ...