PathFollow2D

Наследует: Node2D < CanvasItem < Node < Object

Точечный сэмплер для Path2D.

Описание

Этот узел берет своего родителя Path2D и возвращает координаты точки внутри него, учитывая расстояние от первой вершины.

Это полезно для того, чтобы заставить другие узлы следовать по пути, без кодирования шаблона движения. Для этого узлы должны быть дочерними по отношению к этому узлу. Узлы-потомки затем будут двигаться соответственно при установке progress в этом узле.

Свойства

bool

cubic_interp

true

float

h_offset

0.0

bool

loop

true

float

progress

0.0

float

progress_ratio

0.0

bool

rotates

true

float

v_offset

0.0


Описания свойств

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

Если true, положение между двумя кэшированными точками интерполируется кубически, а в противном случае — линейно.

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

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


float h_offset = 0.0 🔗

  • void set_h_offset(value: float)

  • float get_h_offset()

Смещение узла вдоль кривой.


bool loop = true 🔗

  • void set_loop(value: bool)

  • bool has_loop()

Если true, любое смещение за пределами длины пути будет зацикливаться, а не останавливаться на концах. Используйте его для циклических путей.


float progress = 0.0 🔗

  • void set_progress(value: float)

  • float get_progress()

Расстояние вдоль пути в пикселях. Изменение этого значения устанавливает положение этого узла в точке внутри пути.


float progress_ratio = 0.0 🔗

  • void set_progress_ratio(value: float)

  • float get_progress_ratio()

Расстояние вдоль пути как число в диапазоне от 0,0 (для первой вершины) до 1,0 (для последней). Это просто другой способ выражения прогресса внутри пути, поскольку предоставленное смещение умножается внутренне на длину пути.

Его можно установить или получить, только если PathFollow2D является дочерним элементом Path2D, который является частью дерева сцены, и что этот Path2D имеет Curve2D с ненулевой длиной. В противном случае попытка установить это поле выведет ошибку, а получение этого поля вернет 0.0.


bool rotates = true 🔗

  • void set_rotates(value: bool)

  • bool is_rotating()

Если true, этот узел вращается, следуя по пути, при этом направление +X обращено вперед по пути.


float v_offset = 0.0 🔗

  • void set_v_offset(value: float)

  • float get_v_offset()

Смещение узла перпендикулярно кривой.