Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.07.2010, 16:00
In8Finity вне форума Посмотреть профиль Отправить личное сообщение для In8Finity Найти все сообщения от In8Finity
  № 1  
Ответить с цитированием
In8Finity

Регистрация: Jan 2010
Сообщений: 187
Question как сделать проверку?

Подскажите, вот у меня по уровню игры land разбросано несколько объектов Lift.
Для того, чтобы проверить столкновения - я перебираю всех детей land в цикле:

Код AS3:
for (var j:Number = 0; j < land.numChildren; ++j){
if (land.getChildAt(j).hitTestObject(hero) && (land.getChildAt(j) is Lift)){...}
}
А вот можно ли как-то обойтись без этого цикла перебора всех детей?

Я пробовал в instance name мувика Lift вписать имя "lift" и проверять вот так:

Код AS3:
if (land.getChildByName("lift").hitTestObject(hero)) {...}
тогда работает, но только с одним из "lift"-ов. А у меня их на уровнях может быть разное количество.

Старый 15.07.2010, 16:08
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 2  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
попробуй так:

Код AS3:
var num_lift:array; // массив, что бы держать имена лифтов
num_l:int; // переменая которая заполняется, когда создаешь лифты
 
// присоздании твоих лифтов
num_lift.push(lift.name="lift_"+num_l);
 
// чтобы обратиться к определенному лифту делаешь
<твой_контейнер_для_лифтов>.getChildByName(num_lift[num_l]); // и так далее.

Старый 15.07.2010, 17:01
vinch вне форума Посмотреть профиль Отправить личное сообщение для vinch Найти все сообщения от vinch
  № 3  
Ответить с цитированием
vinch

Регистрация: Feb 2010
Сообщений: 95
Наверное, лучше разово (при загрузке уровня) все обьекты поместить в массив, а при обновлении проходиться по Lift'ам:
Код AS3:
for each (var lift:Lift in levelObjectsArray){
if (lift.hitTestObject(hero)){...}
}

Старый 16.07.2010, 10:48
In8Finity вне форума Посмотреть профиль Отправить личное сообщение для In8Finity Найти все сообщения от In8Finity
  № 4  
Ответить с цитированием
In8Finity

Регистрация: Jan 2010
Сообщений: 187
Спасибо. Буду пробовать.

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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