我正试图在我的舞台上随机分发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);
}
}
我做错了什么?
答案 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);