В настоящее время я делаю 2d игру защиты башни со статической, заранее определенной линией, по которой следуют враги (то есть башни не могут заблокировать путь, и поиск пути - не проблема, которую я пытаюсь решить).
Я пытаюсь понять, как именно заставить юниты плавно следовать по этой полосе . У меня есть две грубые идеи о том, как это сделать, но я хотел бы получить некоторую информацию, которая, вероятно, будет легче реализовать / более стандартную технику. Или, конечно, если бы у меня был какой-то совершенно другой способ, который я не учел, я бы тоже хотел узнать об этом.
Маршрутные точки: моя первая идея состояла в том, чтобы определить путь как серию жестко закодированных маршрутных точек. Затем подразделения будут использовать базовый алгоритм управления «поиск» (такой как этот ) для последовательного перемещения к каждой путевой точке на пути. Тем не менее, я задавался вопросом, может ли быть трудно удержать юниты от большого отклонения от полосы, по которой я хочу, чтобы они следовали. Интересно, может ли неспособность повернуть достаточно резко, чтобы они как бы «скользили» из желаемой полосы? Я полагаю, что смогу предотвратить это, хотя и приложу относительно сильную рулевую силу?
Кривые Безье: Второе решение, которое я рассмотрел, состоит в том, чтобы определить путь с кривой Безье и на каждом временном шаге вычислять точку вдоль кривой с удалением (dt * speed) от текущего местоположения устройства. Я подозреваю, что этот метод намного облегчит точное определение пути, по которому будут следовать юниты, но я не знаю, как именно это осуществить. Какие-либо предложения?
Кроме того, я не изменю чьи-либо ответы, но юниты также должны иметь возможность двигаться с постоянной скоростью по пути. Кроме того, я программирую эту игру на python, используя платформу pyglet.
Если что-то по этому вопросу неясно, пожалуйста, дайте мне знать.
Изменить: Кроме того, что бы это ни стоило, я пытаюсь повторить поведение движения врагов в Королевском порыве .