10-Threejs中Clock跟蹤時間處理動畫
上一節(jié),我們使用了requestAnimationFrame參數(shù)來獲取時間,并處理動畫。這一節(jié)我們使用three.js自帶的Clock類實例的對象來完成時間的處理。

1 Clock
該對象用于跟蹤時間。如果performance.now可用,則 Clock 對象通過該方法實現(xiàn),否則回落到使用略欠精準(zhǔn)的Date.now來實現(xiàn)。
實例化clock對象,new Clock( autoStart : Boolean ),autoStart — (可選) 是否要在第一次調(diào)用 .getDelta() 時自動開啟時鐘。默認(rèn)值是 true。
1.1 獲取運行當(dāng)前幀的時間
getElapsedTime ()獲取自時鐘啟動后的秒數(shù)。
getDelta () 獲取2幀之間的時間間隔。
注意:getDelta、getElapsedTime請勿同時用于同一幀,會導(dǎo)致getDelta計時不準(zhǔn)。因為每次調(diào)用這2個函數(shù),都會對oldTime屬性進行重置,所以getDelta計算出來的就不是上一幀的時間。
2 綜合上述代碼
1、在前面創(chuàng)建的項目中的main.js文件寫入代碼,實現(xiàn)每5秒,即從原點出發(fā)勻速在x軸進行1m/s的勻速運動
效果演示:

標(biāo)簽: