Найти тему
Игровой движок Godot engine

№140. Создание \ удаление тайла в TileMap через клик.

В этой статье будем создавать и удалять тайлы при помощи клика мышкой !

Закидываем в сцену таилмап, навешиваем текстуры и настраиваем таилы.

Скрипт я подключил на родительскую ноду (корневая нода сцены), вы конечно же можете подключать куда пожелаете.

Так как создание и удаление тайлов у меня завязано на левую и правую кнопку мышки соответственно, то я заранее внес эти кнопки в input map как rb и lb.

-2

Код.

Использовать будем два метода : world_to_map и set_cell.
Первый переводит координаты тайлов в локальные. Т.е если у нас таилы размерами 16х16, то в точке экрана с координатами 32,0 мы получим 2,0, второй метод устанавливает новые параметры для тайла. (конкретной ячейки таилмапа)

Так как мы используем для манипуляции с тайлами мышку, то первое что нам надо сделать — получить глобальные позиции курсора. Затем перевести эти координаты в координаты тайлов. И уже по этим данным обращаться непосредственно к ним.

-3

Метод set_cell устанавливает новый индекс выбранному тайлу, и в качестве аргументов принимает кучу всего, но важны для нас только первые три — это позиции и индекс тайла.
В нашем случае в качестве индекса мы подаем -1 , это означает что тайл просто очищается.

Для создания тайла используем соседний метод set_cellv, который в качестве аргумента принимает уже вектор для позиции и индекс для созданного тайла.
(
Само собой , Вы можете использовать и предыдущий метод. В этом нет ничего критичного.)

Вот , в общем и целом всё выглядит как то так.

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

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