Помимо рисования примитивов типа круг, квадрат, линия и так делее, годо дает нам возможность рисовать текстуры.
Есть несколько методов для отрисовки текстур (draw_texture_rect(), draw_texture_rect_region()), но в этой статье мы будем использовать метод draw_texture(). Он принимает такие параметры как ресурс текстуры, позиция, размер, цвет и карта нормалей.
Функцию draw() обычно используют например для отрисовки всякого рода элементов интерфейса с которым нам не надо взаимодеиствовать, или фонов для уровней.
Так как процесс не связан с созданием нод, это сильно оптимизирует нагрузку на память и процессор.
Пример фона с использованием нескольких текстур и анимации:
Вращение текстуры:
Но, в этой статье мы не будем разбирать конкретно этот фон, а создадим что то простое, где разберемся что к чему.
Итак, всё что нам потребуется — это сцена, и скрипт.
Создаем 2Д сцену (рисовать можно только на нодах наследующих класс CanvasItem), подключаем скрипт и пишем следующее :
Выносим текстуру в переменную, и в функции Draw() указываем данные : текстура, позиция, цвет и по желанию текстура нормалей.
После запуска приложения увидим нашу текстуру на экране в координатах 100х100.
Можно заметить что в аргументах функции нет ничего чтобы помогло нам как то повернуть, или поменять размеры текстуры.
Для этого мы должны использовать функцию draw_set_transform(). Которая как раз и принимает значения позиции, поворота и размера.
Допишем скрипт :
Получим повернутую на 45 градусов и увеличенную в два раза текстуру :
Ну а теперь задвигаем нашу текстуру. Для этого, как мы помним нам надо использовать метод update().
Дописываем код , и наблюдаем как текстура начинает двигаться вправо.
Трансформации деиствуют по принципу «наложения». Это значит что если мы положим текстуру, потом применим трансформ, то он применится только к низлежащей текстуре.
На этом всё. Удачи !
Если остались вопросы : Чат , Дискорд.
#godot #gdscript #игровой движок #программирование