| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Поиск точек соприкосновения на маршруте следования |
| Автор: Гость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 |