正文

游戲數(shù)學(xué)(26)

精通C#游戲編程 作者:(英)斯庫勒


 

更新循環(huán)檢查補(bǔ)間是否完成。如果沒有,就更新補(bǔ)間。精靈的寬度和高度被設(shè)為補(bǔ)間的值,該值在0~256之間。

在上面的示例中,補(bǔ)間線性地從初始值變化到最終值。這意味著在2.5s后,補(bǔ)間的值變?yōu)?28。補(bǔ)間并非必須是線性的,在變化到目標(biāo)值的過程中,它們可以逐漸加快變化速度,或者逐漸減慢變化速度。通過使用一個(gè)時(shí)間函數(shù)表示位置,可以獲得這種改變補(bǔ)間類型的能力。

public void function(double time)

{

// Create a position using the time value

return position;

}

實(shí)際的補(bǔ)間函數(shù)要比上面的代碼復(fù)雜一些。下面的函數(shù)用于執(zhí)行線性插值。

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

{

return distance * timePassed / duration + start;

}

補(bǔ)間代碼默認(rèn)使用線性補(bǔ)間,但是可以添加許多不同的補(bǔ)間。圖8-20顯示了許多這樣的補(bǔ)間。

Internet上有許多Flash補(bǔ)間函數(shù),將它們轉(zhuǎn)換成C#代碼并不困難。


上一章目錄下一章

Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)