RTS Транспортная сетка - PullRequest
       18

RTS Транспортная сетка

1 голос
/ 21 апреля 2009

Я не знаю, как реализовать хорошее движение 2D-сетки. Легко реализовать движение для таких юнитов, как солдаты, но я не знаю, как правильно поворачивать машину. Движение должно быть как в C & C Red Alert (не 3, потому что это 3D, я хочу только 2D).

РЕДАКТИРОВАТЬ: Я не спрашиваю ни код, ни ссылки на алгоритмы поиска пути, потому что их легко найти. Но движение сетки не так. Я не знаю, как «точно» переходить от одного тайла к другому, особенно с диагональным движением (даже если это «более длинный» ход, чем ортогональный).

Ответы [ 3 ]

2 голосов
/ 21 апреля 2009

Обратите внимание, я придумываю это, но оно должно работать нормально.

Учитывая координату источника и пункта назначения, просто "нарисуйте линию" между двумя точками и двигайте транспортное средство вдоль этой линии.

Когда транспортное средство движется по более детализированной графической поверхности, вы можете определить, в каком квадрате «действительно» находится единица (например, с помощью простого сопоставления координат).

Если важно, чтобы юнит находился в одном квадрате, то, когда юнит «останавливается», он может перейти к следующему квадрату, он может полностью его вместить (т. Е. Если он уже покинул квадрат А, он продолжает двигаться к Б транспортное средство "остановлено").

Рассчитайте курс между двумя точками, чтобы определить направление движения транспортного средства.

Если ваше транспортное средство имеет только 8 направлений, то вы можете указать их в следующем дополнительном квадрате, а не в конечном пункте назначения. Это будет выглядеть хорошо для медленно движущихся транспортных средств, но будет довольно забавно для быстрых.

Обратитесь к этому алгоритму рисования линий , чтобы помочь вычислить квадраты. Имейте в виду, конечно, это никак не связано с поиском пути.

1 голос
/ 21 апреля 2009
1 голос
/ 21 апреля 2009

Одним из способов было бы выразить радиус поворота транспортного средства в единицах сетки за ход и использовать алгоритм круга Брезенхэма, чтобы постепенно перемещать их в следующую смежную единицу сетки на каждом повороте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...