0

我对所有这些 Flash CS6 动作脚本 3.0 的东西都很陌生,我希望找到一些不同的方法来在 AS3 的影片剪辑阵列上应用罕见的丢弃机会。我有一个随机机会代码,它对敌人非常有效,因为他们经常掉下来,但我希望我的玩家很少掉心,以便抓住并获得生命。

这是我到目前为止的代码,它掉了太多的心。我试过摆弄这些数字,但我似乎只会让它变得更糟。有什么建议么?

function makeHeart():void
{
    var chance:Number = Math.floor(Math.random() * 60);
    if (chance <= 1 + level)
    {
        var tempHeart:MovieClip;
        tempHeart = new Heart();
        tempHeart.speed = 3;
        tempHeart.x = Math.round(Math.random() * 800);
        tempHeart.cacheAsBitmapMatrix = tempHeart.transform.concatenatedMatrix;
        tempHeart.cacheAsBitmap = true;
        trace("tempHeart");
        addChild(tempHeart);
        hearts.push(tempHeart);
    }
}
4

1 回答 1

1

嗯,这个问题要么太简单了,要么就是我没看懂。但是,如果我确实理解正确,那么出路如下:

假设您希望有 1% 的机会心碎。由于您为chance变量使用 Number 类,并且 Math.random() 也返回一个 Number,因此您不需要任何转换。

Math.random() 返回一个介于 0 和 1 之间的数字(浮点数),不包括 1

所以你的 1% 的代码可能看起来像这样:

var chance:Number = Math.random();
if (chance <= 0.01)
{
    //enter code here
}

是的,因为你调用的不需要的函数更少,它的工作速度更快。Math.random() 给出了一个非常精确的数字,远远超过 1/100,因此可以为机会可能性制作一个更少的数字,这是从 Math.random() 返回的一个值:

Math.random(); // 0.9044877095147967
于 2013-08-21T01:35:56.453 回答