0

オブジェクト (その x プロパティ) をトゥイーンライトでトゥイーンしました。トゥイーン中の特定の瞬間の瞬間速度を測定したいと考えています。

onUpdate で最新の x 値を常に記録する配列を作成し、差を取ることができることはわかっています。しかし、これを行うより効率的な方法はありますか?

4

2 に答える 2

0

なぜ速度が必要なのか理解できませんが、単純な計算です。オブジェクトが移動する距離と、目的地に到着するのに必要な時間は既にわかっています。そう、

speedTimeUnit = distanceTraveled/timeNeededToArrive;

または、フレームの速度を知る必要がある場合

speedFramesUnit = distanceTraveled/(timeNeededToArrive*frameRate);

もちろん、これは時間が秒単位の場合です...

于 2013-06-11T14:40:05.723 に答える
0

いいえ、それを測定する別の方法はありません。

とにかく、2 点間の距離と移動時間を知る必要があります。タイムラインにアニメーションがある場合、これらのパラメーターを知る唯一の方法はそれを測定することです。トゥイーンが線形の場合、初期位置とタイムスタンプを保存でき、いつでも瞬時速度は次のようになります。

    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);

トゥイーンが痩せているかどうかわからない場合は、各測定後に交換origPosしてください。origTimestamp

于 2013-06-11T14:41:03.193 に答える