Performance 测量物体之间的速度

Performance 测量物体之间的速度,performance,actionscript-3,gsap,Performance,Actionscript 3,Gsap,我已经用tweenlite将一个对象(它的x属性)tweenlite,我想测量在给定时刻tween过程中的瞬时速度 我知道我可以制作一个数组,在onUpdate时不断记录最近的x值,然后取差值。但是有没有更有效的方法呢?我不明白为什么你需要速度,但是,这只是简单的数学问题。您已经知道对象将要行驶的距离以及到达目的地所需的时间。所以 速度时间单位=行驶距离/行驶所需时间 或者如果你需要知道帧的速度 speedFramesUnit=行驶距离/(行驶所需时间*帧速率) 当然,这是在时间以秒为单位的情况

我已经用tweenlite将一个对象(它的x属性)tweenlite,我想测量在给定时刻tween过程中的瞬时速度


我知道我可以制作一个数组,在onUpdate时不断记录最近的x值,然后取差值。但是有没有更有效的方法呢?

我不明白为什么你需要速度,但是,这只是简单的数学问题。您已经知道对象将要行驶的距离以及到达目的地所需的时间。所以

速度时间单位=行驶距离/行驶所需时间

或者如果你需要知道帧的速度

speedFramesUnit=行驶距离/(行驶所需时间*帧速率)


当然,这是在时间以秒为单位的情况下…

不,没有其他方法来测量它

无论如何,你需要知道两点之间的距离和移动时间,如果你在时间线上有动画,那么知道这些参数的唯一方法就是测量它。如果您的吐温是线性的,您可以存储初始位置和时间戳,并且在任何时刻瞬时速度将为:

    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

这当然假设二者是线性的-这通常不是这样。啊,谢谢Rizzla。我正在开发一款破砖游戏,我需要速度,这样我就可以根据垫板的速度来改变球的速度。