![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
Гость05 |
|
|||
Unregistered |
Всем привет!
игровая модель: - 2D - есть отряды(точки), у каждого отряда есть зона ответственности (некая окружность, радиусы различны) - перемещение происходит по векторам (не по клеткам, под любым углом) - при попадании одного отряда в зону ответственности другого должны произойти некие действия (бой) - перемещение отрядов должно происходить одновременно - скорость перемещения со временем может изменяться проблема: - как реализовать алгоритм обрабатывающий подобную задачу Рассмотрел два варианта но оба в итоге не подошли: 1) простое пересичение отрезков не подходит т.к.: а) наличиствуют зоны ответственности б) действие протекает во времени 2) в каждый момент времени проверять наличие противника в зоне ответственности так же не подходит т.к. изза возможного изменения скорости невозможно определить минимальный шаг В общем мне в голову ничего больше не пришло, может кто ещё что посоветует? Спасибо |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Тема перемещена из раздела "Алгоритмы"
|
|||
|
||||
CD20 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.8.2005 Репутация: нет Всего: 1 |
Я так понял, что отруды какбы опоясываются оружностями. Следовательно, если расстояник между их центрами меньше суммы их радиусов, - они пересекаются.
|
|||
|
||||
Guest |
|
|||
Unregistered |
Без проверки в каждый момент времени наверно невозможно. Разве что сделать события когда отряд начинает двигаться.
А зону ответственности посчитать нетрудно: d=sqrt(abs(x1-x2)^2+abs(y1-y2)^2); если d меньше суммы радуисов, то происходят действия... |
|||
|
||||
Гость05 |
|
|||
Unregistered |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |