Page 1 of 1

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

Posted: Nov 24th, '23, 10:42
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