2013-06-11 38 views
0

我已經用tweenlite補間了一個對象(它的x屬性),並且我想在給定時刻測量補間期間的瞬時速度。Tween對象的測量速度

我知道我可以創建一個數組,它不斷地在onUpdate上記錄最近的x值,然後獲取差異。但是有沒有更有效的方法來做到這一點?

回答

0

不明白你爲什麼需要速度,但它是簡單的數學。您已經知道物體將要傳送的距離以及到達目的地所需的時間。所以,

speedTimeUnit = distanceTraveled/timeNeededToArrive;

,或者如果你需要知道幀

speedFramesUnit = distanceTraveled /(timeNeededToArrive *幀率)速度;

當然,這是在的情況下,時間是在幾秒鐘內......

+1

這當然假設補間是線性的 - 這並不常見。 – Strille

+0

啊,謝謝Rizzla。 我正在開發一個磚頭破碎機遊戲,我需要速度,以便我可以根據墊子的速度調整球的速度。 –

0

沒有,沒有來衡量它的另一種方式。

無論如何,您需要知道兩點之間的距離和移動時間,並且如果您在時間軸中有動畫,則只有知道這些參數才能測量它。如果你不知道每次測量後補瘦與否是否更換origPosorigTimestamp

var origPos:Point = new Point(obj.x, obj.y); 
    var origTimestamp:Number = getTimer(); 
    var currentPos:Point = new Point(); 

    currentPos.x = obj.x; 
    currentPos.y = obj.y; 
    var speed:Number = currentPos.subtract(origPos).length/(getTimer() - origTimestamp); 

:如果您吐溫是線性的,你可以存儲初始位置和時間戳,並在任何時刻的瞬時速度會。