我在60fps下在AS3中實現幀速率獨立運動時遇到問題。每幀測量自上一幀以來的時間,將其添加到累加器,並且如果累加器大於我的目標時間(即16.666ms(60fps)),則會模擬一幀。在AS3中平滑60fps幀速率獨立運動
問題是,AS3 getTimer()只返回一個以毫秒爲單位的時間。
我得到的增量時間往往是第一幀16ms,第二幀16ms,然後是第三幀18ms,然後重複這個模式。這個平均值達到了16.666。但是在第一幀中,它低於目標時間(16 < 16.666),所以沒有模擬幀。在第二幀中,累加器高於目標時間,但略低於其兩倍,因此模擬了一幀。對於第三幀18ms推動累加器超過目標時間的兩倍,因此模擬兩幀。
所以我得到這個非常生澀的運動,其中沒有框架呈現,然後一個,然後兩個,然後沒有,然後一個,然後兩個,這繼續。
我該如何解決這個問題?
我建議閱讀這篇文章:http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/ – 2013-02-12 21:07:51
你爲什麼使用Timer而不是Event .ENTER_FRAME? – 2013-02-12 21:11:41