Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Добавление на сцену масива объектов (http://www.flasher.ru/forum/showthread.php?t=165475)

bogomol17 23.08.2011 14:53

Добавление на сцену масива объектов
 
Здравствуйте. Создаю класс Bonus, потом через массив добавляю бонусы на сцену(например 10 бонусов). Координаты х и у выбираются рандомно (бонусы появляются вверху видимой сцены и едут вниз). Фон игры состоит из двух мувиков которые двигаются вниз(back1, back2). Получается очень не красиво: иногда все объекты на одной куче. Как сделать чтобы объекты не налазили друг на друга, и появлялись по всей ширине сцены?
Добавляются бонусы вот так:
Код AS3:

                 for (var i:uint = 0; i < 10; i++)
                        {
                                allBonus = new Array();
                                var type:Number = Math.floor(Math.random() * 3) + 1;// рандомно выбирается тип бонуса
                                bon = new Bonus(type);
                                bon.x = Math.round(Math.random() * (600 - 30)) + 30;
                                bon.y = -250+Math.floor(Math.random()*200)+50;
                                bon.onAdded();// функция в классе Bonus которая двигает бонусы
                                back222.addChild(bon);
                                allBonus.push(bon);
                                bon.addEventListener(Event.ENTER_FRAME, checkBonus);
 
                        }


DaFive 23.08.2011 15:04

В одну строку запихните.
Код AS3:

arr[i].x = arr[i-1].x+arr[i-1].width + offset;

Или важна неравномерность распределения?

toFL 23.08.2011 15:05

Цитата:

Координаты х и у выбираются рандомно
...
Как сделать чтобы объекты не налазили друг на друга, и появлялись по всей ширине сцены?
Следовательно, появляться они должны рандомно, но по правилам.
Предлагаю разбить ширину на секторы и уже в них делать рэндом. То есть, если ширина 400px - первый элемент будет располагаться случайно в пределах 0-100px, последующие в пределах 100-200px / 200-300px / 300-400px и т.п.

bogomol17 23.08.2011 15:26

Добавлено через 1 минуту
Цитата:

Сообщение от toFL (Сообщение 1024772)
Следовательно, появляться они должны рандомно, но по правилам.
Предлагаю разбить ширину на секторы и уже в них делать рэндом. То есть, если ширина 400px - первый элемент будет располагаться случайно в пределах 0-100px, последующие в пределах 100-200px / 200-300px / 300-400px и т.п.

Спасибо, сейчас попробую.

Добавлено через 1 час 41 минуту
toFL суть идеи понятна. Не понятно как проверять элементы массива, то есть как к ним обращаться?


Часовой пояс GMT +4, время: 06:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.