ВАЖНО. Данный материал создан под версию 3.х. В будущих версиях редактор тайлов будет достаточно сильно прокачен, и возможно логику можно будет упростить.
В этой статье расмотрим простенький пример того, как применить различные свойства тайлам.
У нас это будет три вида поверхности : обычная поверхность, лёд, и грязь.
Соответственно на обычной поверхности наш персонаж будет ходить в обычном режиме. По льду он будет чуть буксовать и скользить, а по грязи он будет идти с усилием, без скольжения и медленно.
Подразумевается, что вы уже более менее хорошо ориентируетесь в годо. Поэтому сильно заострять внимание на вещах которые уже были описаны ранее я не буду (управление кинематиком, определение типа таилов и т.д.).
Укажу лишь на основные моменты.
В проекте у нас две сцены : Общая сцена где разложен TileMap, вторая сцена это персонаж собранный на KinematicBody.
И два скрипта. Соответственно один на общей сцене, второй на персонаже.
Управление персонажем классическое для кинематика. Двигаем при помощи move_and_slide(). Единственное, что я добавил — это переменные для ускорения. Чтобы заставить персонажа набирать ускорение во время хотьбы, и скользить после того как мы прекращаем управлять персонажем.
Так как получить напрямую id таила по коллизии мы не можем, то применяем обычный перевод координат персонажа в координаты тайлов. Об этом можно почитать вот тут.
Важно тут только одно — центр трансформации персонажа должен быть чуть ниже точки касания.
Теперь , зная в каких именно координатах тайла стоит наш персонаж мы можем подавать в его переменные новые данные.
Ну и результат :
Надеюсь вам был полезен этот материал.
Подписывайтесь на канал, вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !
#godot #gdscript #игровой движок #уроки #программирование