![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2010
Сообщений: 7
|
Собственно, какой вопрос возник...
Как сделать от 5 до 10(рандомно) мувиков(одинаковых) со случаными координатами, но так что бы мувики не налазили друг на друга (между ними было бы хотя бы пикселов 30) и не приближались к границе окна ближе чем, допустим 20 пикселов? Буду благодарен за любые советы и помощь ![]() |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 147
|
я лично ничего не понял
![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 74
|
По-разному можно. В лоб цикл сделать, в нем генерить случайную координату. Дальше проверять, какое расстояние от этой координаты до тех что уже есть. Если достаточное, создать мувик и положить его на сцену. Увеличить счетчик мувиков на 1. Когда счетчик дойдет до нужного вам кол-ва мувиков-выйти из цикла. Для небольшого количества мувиков можно перебирать весь массив уже созданых с целью получения координат. Для большого можно наверное делить всю область на части и определять сначала принадлежность к части потом в части проверять координаты. Неэлегантное решение, но должно работать.
|
|
|||||
|
Цитата:
Для этого: - разбиваем все поле на квадратные части - создаем мувик и смотрим, сколько таких квадратных частей он может занимать - находим на поле несколько свободных частей, повторяющих по форме мувик - ставим мувик на поле и помечаем занятые им части (или больше не учитываем их при расчетах) - далее все тоже самое, только занятые части не участвуют в расчете. Если нужно плотное заполнение, максимально приближенное к таблице, то нужно сравнивать совпадение (то есть чтобы ячейка была свободна и в форме мувика, и в форме поля) построчно, и если первая строка ячеек мувика помещается на поле, то проверяем вторую, и тд и тп
__________________
...вселенская грусть |
|
|||||
|
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
пользуйся...
естественно, нужно немного переработать под свои нужды а замысел какой ты и хотел. |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 7
|
to t4arty
Спасибо, обязательно код расковыряю, только вот жаль без коментариев. А потому разбирать буду уже, когда приеду со свадьбы брата, т.е. не раньше как после выходных ![]() to gloomyBrain Вариант интересный. Приеду, попробую. Очень интересно разобраться как такое сделать. Спасибо. |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 7
|
Вот... приехал =)
Вожусь со своими мувиками. Единственное, что никак не выходит, это сделать, что бы они не пересекались. Киньте, кто-нить, простинький пример, пожалуйста. Ps: что то не сообразил как флешку при атачить, потому размещаю сырец(мож кто, что присоветует ) |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 7
|
Вот еще вопросец нарисовался. Как програмно узнать размер сцены?
|
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
stage.stageWidth / stage.stageHeight
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 7
|
Подходит =) Спасибо.
Добавлено через 5 часов 35 минут В итоге нарисовалось ЭТО. Только оно все равно коряво работает. Периодически мувики налаживаются, даже с мин. кол-вом элементов. var cikle:Number = 5; var item:Array = new Array(); var modX:Number = 0; var modY:Number = 0; //Создаем нужное кол-во экземпляров мувика for (var i:int = 0; i<cikle; i++) { var temp:simCha = new simCha(); temp.x = Math.random()*500; temp.y = Math.random()*280; for (var ii:int = 0; ii<item.length;ii++) { modX = Math.abs(item[ii].x - temp.x); modY = Math.abs(item[ii].y - temp.y); while (modX<60) { modX = Math.abs(item[ii].x - temp.x); temp.x = Math.random()*500; } while (modY<50) { modY = Math.abs(item[ii].y - temp.y); temp.y = Math.random()*280; if (temp.y<30) { temp.y = temp.y +40; } } trace(modX); //trace(modY); } item.push(temp); addChild(temp); } ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:18. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|