游戏数学(26)

 

更新循环检查补间是否完成。如果没有,就更新补间。精灵的宽度和高度被设为补间的值,该值在0~256之间。

在上面的示例中,补间线性地从初始值变化到最终值。这意味着在2.5s后,补间的值变为128。补间并非必须是线性的,在变化到目标值的过程中,它们可以逐渐加快变化速度,或者逐渐减慢变化速度。通过使用一个时间函数表示位置,可以获得这种改变补间类型的能力。

public void function(double time)

{

// Create a position using the time value

return position;

}

实际的补间函数要比上面的代码复杂一些。下面的函数用于执行线性插值。

public static double Linear(double timePassed, double start, double distance,double duration)

{

return distance * timePassed / duration + start;

}

补间代码默认使用线性补间,但是可以添加许多不同的补间。图8-20显示了许多这样的补间。

Internet上有许多Flash补间函数,将它们转换成C#代码并不困难。

读书导航