![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 12
|
Короче, еще одна заморочка.
Есть массив объектов. Объекты эти падают вниз. Во время хиттеста с поверхностью, объект должен двигаться не вертикально, а горизонтально.Но тут проблема вот в чем: Скажем, есть код: //army - массив for each( var alien:Alien in army)/* меня терзают сомнения на счет for each in, но я без понятия чем это можно заменить*/ if (grounded) alien.MoveABit(0,3);//объект двигается по-вертикали if(alien.hitTestObject(ground))// объект падает на пол { alien.MoveABit(3,0);// тут объект должен двигаться по-горизонтали grounded = false;//флаг } Или же мне придется убрать массив и прописать каждый объект в отдельности? Последний раз редактировалось iNils; 25.11.2010 в 23:28. |
|
|||||
|
Определите свойство grounded в классе Alien и спрашивайте его у каждого объекта.
if (alien.grounded) alien.MoveABit(0,3);//объект двигается по-вертикали if (alien.hitTestObject(ground))// объект падает на пол { alien.MoveABit(3,0); // тут объект должен двигаться по-горизонтали alien.grounded = false; //флаг } for each( var alien:Alien in army) { // Здесь, если alien.grounded == false, hitTestObject() выполняться уже не будет, // т.к. из одного false уже ясно, что условие в целом будет ложно. if (alien.grounded && alien.hitTestObject(ground)) alien.grounded = false; alien.grounded ? alien.MoveABit(0,3) : alien.MoveABit(3,0); } Несколько нелогично используется названная таким образом перемнная – grounded. Получается, когда она равна true, объект движется по вертикали, хотя название переменной говорит нам, что он приземлился. Последний раз редактировалось bav; 25.11.2010 в 22:42. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 12
|
Хех. Мне, в принципе, все равно что и как называется=)
А за помощь спасибо. Сейчас попробую что получится. Добавлено через 17 минут ОО. Как обычно, я не в теме как все работает, но работает=) Одно напрягает: TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект null at ScotlandCheer() Спасибо еще раз за помощь. Последний раз редактировалось al0ne; 25.11.2010 в 23:00. |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 12
|
Теперь ясно=) А то ведь я Муков и подобной лабуды не читаю. Просто я уже 6 раз возвращаюсь к программированию и не охота снова на теории забить.
|
|
|||||
|
По-поводу Error #1009, в функции ScotlandCheer(), если уж вам не пишут в какой строчке кода возникла ошибка, используйте trace(), чтобы узнать что же это такое еще все еще null, когда ему давно пора им уже не быть.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|