我对所有这些Flash CS6 Action脚本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);
}
}
答案 0 :(得分:1)
嗯,这个问题太简单了,或者我只是不明白。 如果我确实理解它,那么就是出路:
假设你想要有1%的心脏机会。由于您为chance
变量使用Number类,而Math.random()也返回一个Number,因此您不需要任何转换。
Math.random()返回0到1之间的Number(float),不包括1
所以1%的代码看起来像这样:
var chance:Number = Math.random();
if (chance <= 0.01)
{
//enter code here
}
是的,因为你调用较少的不需要的函数,它的工作速度更快。 Math.random()提供了一个非常精确的数字,远远超过1/100,因此可以为偶然事件提供更少的数字,这里是从Math.random()返回的一个值:
Math.random(); // 0.9044877095147967