Actionscript在舞台上随机分配对象

时间:2011-05-12 23:12:32

标签: actionscript random stage

我正试图在我的舞台上随机分发3个物品,但它不起作用。我的电影是800x800。

function makeRock():void{
    var tempRock:MovieClip;

    for(var i:Number = 1; i < 3; i++){
        tempRock = new Rock();
        tempRock.x = Math.round(800);
        tempRock.y = Math.round(-800);
        addChild(tempRock);
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:2)

Math.round(800);替换为Math.random()*800;

function makeRock():void
{
    var tempRock:MovieClip;

    var i:uint = 0;
    for(i; i < 3; i++)
    {
        tempRock = new Rock();

        tempRock.x = Math.random()*800;
        tempRock.y = Math.random()*800;

        addChild(tempRock);
    }
}

Math.round(800)刚刚返回800。

Math.random()返回0到1之间的随机数,您可以乘以800得到随机结果0-800。值得注意的是Math.random()实际上从未返回1.0。从0 1的所有内容。


进一步阅读:

作为旁注:这使得从数组返回随机元素变得简单;因为你永远不会得到1,你可以将Math.random()*array.length的结果转换为uint(),并且始终位于数组长度的边界内。

例如

var ar:Array = [1,2,"hello",4,5,6,7,8,9,0];

var randomElement:Object = ar[uint(Math.random()*ar.length)];
trace(randomElement);