Найти тему

№143. Практика. Назначаем свойства тайлам.

ВАЖНО. Данный материал создан под версию 3.х. В будущих версиях редактор тайлов будет достаточно сильно прокачен, и возможно логику можно будет упростить.

В этой статье расмотрим простенький пример того, как применить различные свойства тайлам.

У нас это будет три вида поверхности : обычная поверхность, лёд, и грязь.

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

Подразумевается, что вы уже более менее хорошо ориентируетесь в годо. Поэтому сильно заострять внимание на вещах которые уже были описаны ранее я не буду (управление кинематиком, определение типа таилов и т.д.).
Укажу лишь на основные моменты.

В проекте у нас две сцены : Общая сцена где разложен TileMap, вторая сцена это персонаж собранный на KinematicBody.
И два скрипта. Соответственно один на общей сцене, второй на персонаже.

Управление персонажем классическое для кинематика. Двигаем при помощи move_and_slide(). Единственное, что я добавил — это переменные для ускорения. Чтобы заставить персонажа набирать ускорение во время хотьбы, и скользить после того как мы прекращаем управлять персонажем.

скрипт на персонаже
скрипт на персонаже

Так как получить напрямую id таила по коллизии мы не можем, то применяем обычный перевод координат персонажа в координаты тайлов. Об этом можно почитать вот тут.
Важно тут только одно — центр трансформации персонажа должен быть чуть ниже точки касания.

-3

Теперь , зная в каких именно координатах тайла стоит наш персонаж мы можем подавать в его переменные новые данные.

скрипт на сцене
скрипт на сцене

Ну и результат :

-5

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

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