Найти в Дзене
Игровой движок Godot engine

№157. Навигация и тайлмап. Движение по пути.

В качестве продолжения предыдущей статьи прикрутим навигацию к таилмапу, и заставим ходить нашего персонажа по пути. Собственно отличий от обычной навигации тут нет, за исключением пары нюансов. Начем с того, что создадим сцену с нашим персонажем.
В моем случае это кинематик (KinematicBody2D). Внутри лежит колижн шеип (CollisionShape2D), анимированный спрайт c анимацией хотьбы и стояния на месте (AnimatedSprite), линия (Line2D) и само собой нода навигации (NavigationAgent2d) Вернемся в общую сцену.
Добавляем таилмап, и рисуем всё что вам захочется. Единственное что надо сделать — добавить полигоны навигации в те тайлы, где персонаж должен будет ходить. И после этого нажать кнопку Bake Navigation в инспекторе Дропаем нашего зомби ПОД(!!!) ноду таилмап, и ставим его на сцене там, где можно ходить. Включаем отображение навигации в верхнем меню Debug. И теперь после запуска можем наблюдать наши навигационные полигоны.
(cамо собой вы можете нарисовать эти полигоны более детальными) Ну а дал

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

Собственно отличий от обычной навигации тут нет, за исключением пары нюансов.

Начем с того, что создадим сцену с нашим персонажем.
В моем случае это кинематик (
KinematicBody2D). Внутри лежит колижн шеип (CollisionShape2D), анимированный спрайт c анимацией хотьбы и стояния на месте (AnimatedSprite), линия (Line2D) и само собой нода навигации (NavigationAgent2d)

-2

Вернемся в общую сцену.
Добавляем таилмап, и рисуем всё что вам захочется.

-3

Единственное что надо сделать — добавить полигоны навигации в те тайлы, где персонаж должен будет ходить.

-4

И после этого нажать кнопку Bake Navigation в инспекторе

-5

Дропаем нашего зомби ПОД(!!!) ноду таилмап, и ставим его на сцене там, где можно ходить.

-6

Включаем отображение навигации в верхнем меню Debug.

-7

И теперь после запуска можем наблюдать наши навигационные полигоны.
(
cамо собой вы можете нарисовать эти полигоны более детальными)

-8

Ну а дальше всё просто. Подключаем скрипт на персонажа.
Тут в принципе ничего сложного нет, просто двигаем кинематик по пути через get_next_location().

-9

Ну и скрипт подключенный на сцену делает две вещи :
Указывает точку куда надо топать зомби и меняет его переменную state.

-10

Запускаем и наблюдаем как наш зомби покорно ходит в любую точку на карте именно по тем тайлам, по которым ему можно ходить.

-11

Ну и напоследок. Если ваш персонаж в конце пути начинает себя неадекватно вести , то можно чуть чуть увеличить вот эти параметры у ноды NavigationAgent2d.

-12

За сим всё, удачной разработки !
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #gdscript #игровой движок #программирование #уроки