Возьмите приведенную ниже картинку в качестве примера. Рассмотрим следующее -
- Голубой квадрат - игрок
- Оранжевый квадрат - первый пункт назначения
- Розовый квадрат - второй пункт назначения
- Зеленые квадраты являются проходными плитками
- Черные квадраты - это стены / препятствия на вершине проходной плитки
- Каждая плитка имеет размер 4x4
![enter image description here](https://i.stack.imgur.com/C9SsU.png)
Предполагаемое поведение здесь -
- Прогулка до оранжевого квадрата приводит к прямой линии вниз
- Прогулка до розового квадрата (от синего квадрата) обходит черные квадраты в непосредственной близости
Моя текущая реализация берет сетку плиток и передает ее типичному алгоритму A * для кратчайшего пути к каждому квадрату. Однако то, что на плитке есть стена, не означает, что она не пройдена - это должно означать, что сгенерированный путь не пересекает объект.
При этом текущая реализация приводит к этому, как нет другого выбора, кроме как придерживаться сетки плиток 4х4, и, не помечая всю плитку как неприступную, она будет проходить сквозь объекты. Красные плитки не ходят.
![enter image description here](https://i.stack.imgur.com/NhnTS.png)
, которая обеспечивает очень дрянную систему поиска пути, поскольку она пропускает идеально мелкие плитки (обозначены красным). Мой вопрос: как мне сделать так, чтобы стены не были обрезаны, но плитка, на которой они сидят, все еще проходима?