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,则两个缓存点之间的位置将进行三次插值,否则将线性插值。

沿着 Path2DCurve2D 的点在使用前被预先计算,以更快的计算速度。然后在两个相邻的缓存点之间计算请求偏移量的点。这可能会出现一个问题,如果曲线做急转弯,因为缓存点可能不跟随曲线足够近。

有两种方法可以解决这个问题:要么增加缓存点的数量,增加内存消耗,要么在两个点之间进行三次插值,但代价是(稍微)降低计算速度。


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(最后一个顶点)范围内的数字表示。这只是表示路径内偏移量的另一种方式,提供的偏移量在内部会与路径的长度相乘。


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()

节点垂直于曲线的偏移量。