根据变量缩放对象

时间:2015-08-22 01:23:16

标签: actionscript-3 flash

好吧,我正在尝试做的是有一个矩形跟踪我的速度。 我想做的就是让它根据我的速度填充或缩小并根据我的速度增长。我在我的小“游戏”中有一个maxSpeedConstant以及一个newMaxSpeedConstant(当他正在运行时)我的所有代码都运行正常,我无法弄清楚如何用2个变量跟踪我的速度。仅当按下shift和移动键时,才使用newMaxSpeedConstant。我也想扩大我的速度!意思是,我的maxSpeedConstant在10,而我的newMaxSpeedConstant在40,而不是击中移位并立即跳到40像素。我宁愿他慢慢开始“跑”。对不起这些可能很愚蠢的问题。只是尝试一堆小东西,这样我最终可以做大事!感谢您的帮助!我是一个菜鸟,所以再次对不起,如果这看起来很容易。也不确定看到我的代码是否有帮助,所以请告诉我你是否需要它以及它有多少!

1 个答案:

答案 0 :(得分:0)

计算中缺少的是时间。您可以在固定的时间内更改值,也可以随时间更改值,直到达到所需的限制。

例如,要在固定数量的帧(时间)上更改速度,您可以:

(当用户按下“go”或“stop”控件时执行一次......)

var changeInSpeedEachFrame:Number = (finalSpeed - currentSpeed) / numberOfFramesToAccelerate;

(......这是每帧执行的......)

if ( changeInSpeedEachFrame != 0 )
{
    currentSpeed += changeInSpeedEachFrame;
    if ( currentSpeed == finalSpeed )
    {
        changeInSpeedEachFrame = 0;
    }
}

这适用于加速和减速。如果您的finalSpeed小于currentSpeed,则changeInSpeedEachFrame将为负数。

请注意,userSpeed == finalSpeed测试可能会因Number类而出错,因为Numbers是浮点数并且可能不精确。根据您的具体情况,您可以使用int,或检查您是否比您的限制更慢或更快。