Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

PathFollow2D

Hereda: Node2D < CanvasItem < Node < Object

Una muestra de puntos para un Path2D.

Descripción

Este nodo toma su padre Path2D, y devuelve las coordenadas de un punto dentro de él, dada una distancia desde el primer vértice.

Es útil para hacer que otros nodos sigan una ruta, sin codificar el patrón de movimiento. Para ello, los nodos deben ser hijos de este nodo. Los nodos descendientes se moverán en consecuencia al establecer el progress en este nodo.

Propiedades

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


Descripciones de Propiedades

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

Si es true, la posición entre dos puntos cacheados se interpola cúbicamente, y linealmente en caso contrario.

Los puntos a lo largo de la Curve2D del Path2D se precalculan antes de su uso, para cálculos más rápidos. El punto en el desplazamiento solicitado se calcula entonces interpolando entre dos puntos cacheados adyacentes. Esto puede presentar un problema si la curva hace giros bruscos, ya que los puntos cacheados pueden no seguir la curva lo suficientemente cerca.

Hay dos respuestas a este problema: o bien aumentar el número de puntos cacheados y aumentar el consumo de memoria, o bien hacer una interpolación cúbica entre dos puntos a costa de cálculos (ligeramente) más lentos.


float h_offset = 0.0 🔗

  • void set_h_offset(value: float)

  • float get_h_offset()

El nodo está desplazado a lo largo de la curva.


bool loop = true 🔗

  • void set_loop(value: bool)

  • bool has_loop()

Si es true, cualquier desplazamiento fuera de la longitud del camino se envolverá, en lugar de detenerse en los extremos. Úsalo para los caminos cíclicos.


float progress = 0.0 🔗

  • void set_progress(value: float)

  • float get_progress()

La distancia a lo largo de la ruta, en píxeles. Al cambiar este valor, la posición de este nodo se establece en un punto dentro de la ruta.


float progress_ratio = 0.0 🔗

  • void set_progress_ratio(value: float)

  • float get_progress_ratio()

La distancia a lo largo de la ruta como un número en el rango de 0.0 (para el primer vértice) a 1.0 (para el último). Esta es solo otra forma de expresar el progreso dentro de la ruta, ya que el desplazamiento proporcionado se multiplica internamente por la longitud de la ruta.

Solo se puede establecer u obtener si el PathFollow2D es hijo de un Path2D que forma parte del árbol de la escena, y si este Path2D tiene una Curve2D con una longitud distinta de cero. De lo contrario, intentar establecer este campo imprimirá un error, y obtener este campo devolverá 0.0.


bool rotates = true 🔗

  • void set_rotates(value: bool)

  • bool is_rotating()

Si es true, este nodo rota para seguir la ruta, con la dirección +X orientada hacia adelante en la ruta.


float v_offset = 0.0 🔗

  • void set_v_offset(value: float)

  • float get_v_offset()

El nodo está desplazado perpendicularmente a la curva.