Маршрут для нпс
|
|
Supr_maks | Дата: Пятница, 17 Января 2020, 16:11 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Подскажите как кодом/кодами создать для нпс маршруты.
У всех в душе пустота...
Сообщение отредактировал Supr_maks - Пятница, 17 Января 2020, 16:14 |
|
| |
SharpSolaris | Дата: Пятница, 17 Января 2020, 23:28 | Сообщение # 2 |
был не раз
Сейчас нет на сайте
| Для своей игры придумал такой вариант:
В редакторе уровней (использую самописный редактор уровней как и движок), создаю специальный слой с картой передвижения нпс. То есть я могу загрузить карту уровня и расставить мышей точки на этой карте, которые связываю между собой линиями. Точки - это допустимые позиции для нпс, а линии - маршруты движения между этими точками. НПС не может выйди за пределы точек и линий. Естественно, в игре эти маршруты не отображаются.
Используемая структура данных - односвязный список. Каждый элемент списка содержит координаты "точки" (возможной позиции для нпс) и указатели на другие доступные "точки" из этой позиции - куда можно совершить переход.
А дальше только немного векторной алгебры (определить направление движения при переходе из одной точки в другую) и логика передвижений (зависит от особенностей игры).
Сообщение отредактировал SharpSolaris - Пятница, 17 Января 2020, 23:53 |
|
| |
StormT | Дата: Суббота, 01 Февраля 2020, 20:05 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Что-то мне кажется, что этот вариант слишком сложный и хотелось чего-то проще) Supr_maks, движение непесей (а именно AI ботов) - целая наука... У каждого реализовано по-своему под условия игры.
Из простейших и самых реальных вариантов - прописать определённые условия простейшие и бот будет реагировать на прпятствия (прыгать через одни или упираться в другие и идти обратно), как пример.
С помощью путей
и там уже назначаем нужный путь для нужного объекта, но тут много "но" и больше для катсцен подойдёт, хотя я часто использую у себя пути
С помощью Google и запроса game maker studio pathfinding Особенное внимание уделить A* pathfinding - очень положительно отзываются. Но сам я туда не макался ещё.
В каком-то старом проекте я использовал точки, к которым идёт бот. При прикосновении точка исчезает и он автоматом идёт ко следующей, а я заранее составил маршрут из таких точек, просто тыкнув на карте "туда, сюда". Но этот способ одноразовый (ну или смотря как прописать в условия).
|
|
| |