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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.06.2013, 19:57
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 6  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Ну если брать большие уровни, то придется забивать их все в массив и проверять столкновение с каждым в отдельности) Еще один способ - нарисовать уровень (если вы работаете во Flash IDE - это вообще дело пары минут) и проверять не .hitTestObject, не .intersects, а .hitTestPoint - проверка столкновения точки (обычно y - самая нижняя точка героя, а x - середина героя) с конкретными пикселями объекта - игнорируя прозрачные места.

Я тоже какое то время назад занимался "разработкой" "движка" столкновений (учить готовые движки Box2D или Nape было очень лень, а со столкновениями я до этого работал какое то время)а потом мне пришлось пересесть с обычной векторной флеш графики на растровую - на фреймворк Starling. Там столкновения представлены немного интересней - при наличии на сцене нескольких объектов - платформ, их не нужно забивать в массивы - стандартный старлинговский метод .hitTest возвращает объект, с которым сталкивается другой объект (за этим, конечно, стоит проверка столкновений в цикле, но она по крайней мере хорошо оптимизирована) и героя можно выравнивать уже по отношению к возвращенному объекту.

Что касается Ваших вопросов - самым дешевым способом проверить столкновения является проверка столкновений ограничивающих прямоугольников, то есть intersects (Кстати, в каком классе реализован этот метод? В классе платформы?). В данном случае .getRect() нужен для использования свойств .left и .right конкретной платформы (если этот метод в классе платформы)

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

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

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


 


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


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