Actionscript случайным образом распределяет объекты на сцене

StackOverflow https://stackoverflow.com/questions/5985578

  •  12-11-2019
  •  | 
  •  

Вопрос

Я пытаюсь случайным образом распределить 3 объекта на сцене, но это не работает.Мой фильм 800х800.

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);
    }
}

Что я делаю не так?

Это было полезно?

Решение

Заменять 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top