![]() |
|
Модераторы: Rickert |
![]()
|
|
| Megas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
На данный момент работаю над RTS игрой. Для нахождения пути на карте используется обычный А*.
Появилась небольшая задача. Допуститм стоит группа юнитов. Нужно одного из них, из самой середины, кудато отправить. Но так как он полностью окружен другими юнитами, то не существует расчетного пути для его выхода. А выйти из группы нужно обязательно. В этом случае надо сообщить другим юнитам, чтоб они подвинулись и пропустили его. Какие есть алгоритмы для этого? Я чтото даже затрудняюсь сформулировать вопрос гуглу, чтоб он мне выдал чтото подходящее. |
|||
|
||||
| AVA12 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 4.5.2008 Репутация: нет Всего: 4 |
Гугление по теме "rts path move blocking units" уже в первой ссылке выдает термин - local avoidance. По этому термину гугл выдает много интересного (по-английски).
|
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
А что если рассчитать путь так, как будто он никем не окружён. А после этого тем юнитам, которые стоят на этом пути, дать команду отойти на ближайшую не занятую точку, не находящуюся на расчитаном пути.
--------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 5 Всего: 27 |
Агрох, а если для этого мешающему юниту надо будет двигаться в направлении исходного юнита? Например они стоят в узком проходе )
|
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Bitter, если для того чтобы мешающий юнит уступил дорогу исходному, ему самому надо пройти туда, куда ему мешает пройти исходный юнит, то тут надо выставлять приоритеты. Чтобы сделать 3 шага вперёд, надо сначала отойти на 2 назад, уступить место другому, потом вернуться в исходную точку и только потом идти на 3 шага вперёд).
Это получится несколько, наверно будет правильно сказать вложенных (или рекурсивных), алгоритмов поиска пути. Но это будет всё тот же А*. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| phomm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 7.10.2010 Репутация: нет Всего: 1 |
Существует открытая разработка OpenSteer http://sourceforge.net/projects/opensteer/
Если нужно сложное поведение - имеет смысл взять её и задействовать для работы. |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 5 Всего: 27 |
phomm, хм интересно, даже под мак есть. Щас посмотрим )
Добавлено через 7 минут и 1 секунду Для мака все слишком устарело, так что протестить не удалось :( Последнее обновление сайта в 2004м ... |
|||
|
||||
| Odin_KG |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.2.2007 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |