更新循環(huán)檢查補間是否完成。如果沒有,就更新補間。精靈的寬度和高度被設(shè)為補間的值,該值在0~256之間。
在上面的示例中,補間線性地從初始值變化到最終值。這意味著在2.5s后,補間的值變?yōu)?28。補間并非必須是線性的,在變化到目標(biāo)值的過程中,它們可以逐漸加快變化速度,或者逐漸減慢變化速度。通過使用一個時間函數(shù)表示位置,可以獲得這種改變補間類型的能力。
public void function(double time)
{
// Create a position using the time value
return position;
}
實際的補間函數(shù)要比上面的代碼復(fù)雜一些。下面的函數(shù)用于執(zhí)行線性插值。
public static double Linear(double timePassed, double start, double distance,double duration)
{
return distance * timePassed / duration + start;
}
補間代碼默認(rèn)使用線性補間,但是可以添加許多不同的補間。圖8-20顯示了許多這樣的補間。
Internet上有許多Flash補間函數(shù),將它們轉(zhuǎn)換成C#代碼并不困難。