我已經用tweenlite補間了一個對象(它的x屬性),並且我想在給定時刻測量補間期間的瞬時速度。Tween對象的測量速度
我知道我可以創建一個數組,它不斷地在onUpdate上記錄最近的x值,然後獲取差異。但是有沒有更有效的方法來做到這一點?
我已經用tweenlite補間了一個對象(它的x屬性),並且我想在給定時刻測量補間期間的瞬時速度。Tween對象的測量速度
我知道我可以創建一個數組,它不斷地在onUpdate上記錄最近的x值,然後獲取差異。但是有沒有更有效的方法來做到這一點?
不明白你爲什麼需要速度,但它是簡單的數學。您已經知道物體將要傳送的距離以及到達目的地所需的時間。所以,
speedTimeUnit = distanceTraveled/timeNeededToArrive;
,或者如果你需要知道幀
speedFramesUnit = distanceTraveled /(timeNeededToArrive *幀率)速度;
當然,這是在的情況下,時間是在幾秒鐘內......
沒有,沒有來衡量它的另一種方式。
無論如何,您需要知道兩點之間的距離和移動時間,並且如果您在時間軸中有動畫,則只有知道這些參數才能測量它。如果你不知道每次測量後補瘦與否是否更換origPos
和origTimestamp
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);
:如果您吐溫是線性的,你可以存儲初始位置和時間戳,並在任何時刻的瞬時速度會。
這當然假設補間是線性的 - 這並不常見。 – Strille
啊,謝謝Rizzla。 我正在開發一個磚頭破碎機遊戲,我需要速度,以便我可以根據墊子的速度調整球的速度。 –