![]() |
Столкновение окружностей
Здравствуйте.
Подскажите или посоветуйте материал (статьи, уроки) где раскрывается тема столкновения юнитов друг с другом в процессе передвижения к одной для всех цели (например, движение толпы монстров на игрока как в Alien Shooter). Пишу алгоритм поведения врагов для изометрического шутера, и наткнулся на данную проблему. В данный момент для каждого юнита(представлены как окружности), перед обновлением координат, проверяется столкновение со всеми остальными, если после добавления соответствующего значения вектора скорости по Х столкновение состоится, то движение юнита прекращается по оси Х, то же самое для У. Это работает корректно только для 2-3 юнитов, когда их больше, все остальные юниты игнорируют запрет на движение и сливаются воедино. Как решить данную проблему? Заранее благодарю. |
Код AS3:
|
вы изобретаете велосипед, есть специальный класс Point у которого есть метод distanse()
|
Вот так.
Код AS3:
|
А может дистанс медленнее работает?
|
Цитата:
В своём примере я просто продемонстрировал как это работает, я же не навязывал или там не"(V)утверждал(V)". А признаться, я как то "Point - ом" и не пользовался ни разу))) |
2 + 2 и без Pointa сложить вполне себе можно. И по поводу велосипеда, это к Пифагору :)
|
Цитата:
Мне кажется, если бы разработчики не взирали на (столь "идеально" оптимизированные) решения от Adobe - а, все давно уже на флексе писали бы. =) |
Оперируйте квадратами расстояний.
|
А и ... TanaTiX внимательнее к своим примерам, в спешке даже в одной строчке допускаете ошибки!
|
| Часовой пояс GMT +4, время: 02:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.