![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Apr 2011
Сообщений: 19
|
ВОт такая проблема возникла: вначале создается 3 рандомно расположенных объекта level и сразу же добавляются в массив
for (var i:uint = 0; i < 3; i++) { level = new Level(); level.x = Math.random() * 550; level.y = Math.random() * 400; addChild(level); levelArray.push(level); } Как пишутся хит тесты ко всему массиву? Могу привести свой неудачный пример, посмотрите, в чем проблема |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Проверять на столкновения, нужно так же в цикле, с каждым элементом массива.
И этот цикл нужно вызывать по ENTER_FRAME либо по таймеру, чтобы проверка происходила постоянно Последний раз редактировалось goodguy; 26.04.2011 в 09:58. |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 19
|
Спасибо большое, все работает.
Только один вопрос: obj принято в языке считать любой объект?Или это переменная, имя которой мы можем указать сами? |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Это переменная (перед ней же стоит ключевое слово var), название которой может быть любым (соответствующим требованиям языка).
Я назвал ее obj потому, что i (используемая в циклах чаще всего) уже используется в функции ниже, просто чтобы не менять весь код |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 19
|
Кстати, возник еще один вопрос: реально ли вообще сделать так, чтобы при движении героя не только двигалась камера, но и генерировались случайно расположенные объекты из массива (напр. чтобы на экране было всегда 3-4 таких объекта)?То есть в принципе я так понял, что нужно просто каждый кадр проверять - находится ли нужное количество объектов на экране и если их меньше, то добавить. Но это все так просто на словах, на деле же я даже камеру не заставлю за героем следовать)))
|
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Apr 2011
Сообщений: 19
|
Спасибо за ответ. Я погуглил инфу на тему скроллинга, но там в основном карта - отдельный мувиклип, который просто скроллят...
У меня же нет карты как таковой - мне нужна иллюзия скроллинга что ли....То есть ваш метод с контейнером вроде подходит. Но я не пойму, как его осуществить?Первый раз слышу. Если можно, просто натолкните на мысль, что почитать, а дальше разберусь сам. |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Я бы сделал контейнер (спрайт) и помещал все объекты в него, а не на сцену. public class SomeClass extends Sprite { private var camera:Sprite = new Sprite(); // контейнер для объектов private var character:SomeCharacter = new SomeCharacter(); // какой-нибудь персонаж public function SomeClass() { if (stage) initialize(); else this.addEventListener(Event.ADDED_TO_STAGE, initialize); } private function initialize(e:Event = null):void { this.removeEventListener(Event.ADDED_TO_STAGE, initialize); character.x = stage.stageWidth / 2; // ставлю персонажа в центр экрана character.y = stage.stageHeight / 2; camera.addChild(character); // добавляю персонажа в контейнер stage.addChild(camera); // после чего, добавляю сам контейнер this.addEventListener(Event.ENTER_FRAME, update, false, 0, true); } private function update(e:Event):void { character.x += 2; // двигаю персонаж character.y += 2; (character.parent as Sprite).x -= character.x; // и контейнер в противоположную сторону (character.parent as Sprite).y -= character.y; } } Цитата:
![]() Думаю идея должна быть ясна |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|