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

№173.GODOT 4. Line2D через код. Ресурсы Curve и Texture.

В этой статье покажу как добавить линию (Line2D) в сцену через код. А так же накинуть на неё такие ресурсы как градиент и кривую.

Код сцены:

Линия рисуется, теперь можно приступить к её модификации.
Насчем с градиента.
Напомню, что это
ресурс. Поэтому на необходимо сначала его создать.
Далее применим его на свойство
gradient нашей линии .

-2

Если мы запустим сейчас проект, то увидим дефолтный черно белый градиент на нашей линии.

-3

Давайте изменим цвета градиента :

-4

Тут всё в принципе просто - берем точку с индексом и назначаем ей цвет.
Так как у нас точек всего две - то левая это 0 , правая это 1.
Добавить новую точку можно через метод add_point()

-5

Тут важны три момента.
1) Точка добавляется с конца линии.
2) Первый аргумент это сдвиг по линии в диапазоне 0-1. Т.е мы по сути вставили новую точку между первыми двумя и дали ей синий цвет.
3) Порядковый номер будет изменен. В нашем случае новая точка получит индекс 1 , а крайняя справа изменит на 2.

Для наглядности - накинем желтый цвет точке с индексом 1 , и увидим как синий цвет изменился

-6

Сдвинуть какую либо точку можно через метод set_offset()

КРИВАЯ.

С кривой ситуация схожа. Добавляем ресурс, и назначем на параметр width_curve.

-7

Но в отличии от градиента , в кривой дефолтные значения равны нулю.
И если вы запустите сейчас проект, то не увидите ничего.

Нам надо добавить две точки, который будут формировать кривую.
Добавляем метод add_point. И в нем пишем координаты точек.

-8

Линия должна стать вот такой :

-9

Что тут происходит.
Самый важный параметр тут это вектор - расположение точки на координатной сетке кривой. Визуально это выглядит так :

-10

Остальные четыре аргумента определяют тангенс (tangent) кривой.
Если кто то не в курсе (
опять же для визуального примера) - это такая штука определяющая под каким углом из точки выходит кривая:

-11

Для закрепления информации, добавим новую точку, сделаем её шире и изменим параметры старых.

-12

Результат :

-13

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