ПОИСК ПУТИ: МЕТОД ПОТЕНЦИАЛЬНЫХ ПОЛЕЙ

Post Reply
User avatar
admin
Site Admin
Posts: 29
Joined: Nov 24th, '23, 09:57

ПОИСК ПУТИ: МЕТОД ПОТЕНЦИАЛЬНЫХ ПОЛЕЙ

Post by admin »

В gamedev нередко приходится реализовать поиск путей, методов множество, ниже реализация поиска пути методом potential field.

Допустим у нас есть поле размерами X*Y на котором расположены препятствия. Есть положение юнита (объект который должен дойти до цели) и есть конечная точка к которой нужно прийти. Если на пути юнита встречается непроходимая точка - ее нужно обойти. Данный алгоритм решает эту проблему.

Общая суть метода заключается в построении вокруг препятствий особых полей которые отталкивают проходящих по соответствующим точкам юнитов.
Image
Алгоритм предельно прост:
  1. строим карту с векторами сил вокруг точек
  2. каждый ход проверяем действует ли на эту точку вектор силы
  3. если есть прибавляем к текущему единичному вектору движения
  4. делаем эти действия для каждого юнита
Значения векторов отталкивания в радиусе одной клетки от препятствия:
Image
Алгоритм в действии:
Image
Реализация данного алгоритма на as3 (под flash develop) доступна на GitHub

Оригинал:
https://flash-dance-with-magic-drum.blo ... -post.html
Post Reply