A * поиск пути для динамических препятствий и блокирования игрока?


11

Привет, я создаю TD в Unity 5 и мне нужна помощь с моим Pathfinding.

Я собираюсь использовать Arons A * pathfinding для моего AI, который позволяет мне использовать динамические объекты и обновлять путь во время выполнения. Однако в моей игре я хочу, чтобы игрок мог блокировать миньонов с помощью специальных турелей, которые заставят миньонов атаковать «башню блоков» вместо того, чтобы пройти к месту назначения.

Как я мог сделать что-то подобное?

Изображение для большей наглядности: введите описание изображения здесь

Ответы:


22

Я не смотрел на конкретную реализацию A * Аарона, но с обычным A * вы могли бы включить «башню блока» в качестве проходимой местности, но обновить эвристику так, чтобы «стоимость» была намного выше, чем у обычной плитки (так, чтобы ИИ оценит, проще ли уничтожить блок и продолжить или просто пройти по пути, который не заблокирован).

Затем вам нужно будет обновить свой ИИ, чтобы, когда враг пытался перейти от обычной плитки к плитке «блок-башни», он автоматически атаковал до уничтожения.


8
+1 Я бы добавил, что вы можете рассчитывать стоимость блокирующей башни в зависимости от того, сколько времени понадобится число Х и тип миньонов, чтобы уничтожить ее, если есть какая-либо разница. Предустановленная стоимость башни может быть неточной, если миньонам самого низкого уровня требуется 5 секунд, чтобы уничтожить ее, но один суперминион может сделать это за 1 секунду.
Нечеткая логика

0

Если то, что вы ищете, является чем-то вроде насмешливой башни, вы можете добавить к ней коллайдер, установленный как триггер, и когда миньоны входят в триггер, они просто запускаются по сценарию для атаки на башню.

Если вы хотите, чтобы миньоны атаковали башни только тогда, когда нет альтернативных путей, тогда, когда путь заблокирован и A * вызывается для вычисления другого пути, если он возвращает ноль, тогда вы можете заставить врагов найти все башни для насмешек и цель их.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.