Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Поиск точек соприкосновения на маршруте следования


Автор: Гость05 30.8.2005, 10:11
Всем привет!

игровая модель:
- 2D
- есть отряды(точки), у каждого отряда есть зона ответственности (некая окружность, радиусы различны)
- перемещение происходит по векторам (не по клеткам, под любым углом)
- при попадании одного отряда в зону ответственности другого должны произойти некие действия (бой)
- перемещение отрядов должно происходить одновременно
- скорость перемещения со временем может изменяться

проблема:
- как реализовать алгоритм обрабатывающий подобную задачу


Рассмотрел два варианта но оба в итоге не подошли:

1) простое пересичение отрезков не подходит т.к.:
а) наличиствуют зоны ответственности
б) действие протекает во времени

2) в каждый момент времени проверять наличие противника в зоне ответственности так же не подходит т.к. изза возможного изменения скорости невозможно определить минимальный шаг


В общем мне в голову ничего больше не пришло, может кто ещё что посоветует?

Спасибо

Автор: podval 30.8.2005, 11:47
Тема перемещена из раздела "Алгоритмы"

Автор: CD20 2.9.2005, 09:39
Я так понял, что отруды какбы опоясываются оружностями. Следовательно, если расстояник между их центрами меньше суммы их радиусов, - они пересекаются.

Автор: Guest 12.9.2005, 21:44
Без проверки в каждый момент времени наверно невозможно. Разве что сделать события когда отряд начинает двигаться.
А зону ответственности посчитать нетрудно:
d=sqrt(abs(x1-x2)^2+abs(y1-y2)^2);
если d меньше суммы радуисов, то происходят действия...

Автор: Гость05 13.9.2005, 12:47
если кому интересно есть развитие этой темы:
http://algolist.manual.ru/forum/showflat.php/Cat/0/Number/6853/an/0/page/0#6853

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)