В настоящее время я работаю над наведением A * на сетку и пытаюсь сгладить сгенерированный путь, а также учесть степень перемещения персонажа по нему. Я использую сетку для поиска пути, однако движение персонажа является свободным перемещением, а не строгим движением тайла к тайлу.
Чтобы добиться более плавного и более эффективного пути, я делаю трассировки линий на сетке, чтобы определить, есть ли неприступные плитки между плитками, чтобы сбрить ненужные углы.
Однако, поскольку трассировка линии имеет нулевой экстент, она не учитывает экстент символа и дает плохие результаты (не возвращая непроходимые тайлы, просто пропущенные линией, вызывая нежелательные столкновения).
Так что я ищу не линейный алгоритм, который определяет плитки под ним, я ищу тот, который определяет плитки под линией экстента в масштабе плитки. Вот изображение, чтобы помочь визуализировать мою проблему!
У кого-нибудь есть идеи? Я работал с линией Брезенхэма и другими альтернативами, но я еще не понял, как решить эту конкретную проблему.