0

我试图在我的舞台上随机分配 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);
    }
}

我究竟做错了什么?

4

1 回答 1

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。只是从 01 的所有内容。


进一步阅读:

附带说明:这使得从数组中返回随机元素变得简单;因为你永远不会得到 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);
于 2011-05-12T23:13:48.583 回答