Line2D
Hereda: Node2D < CanvasItem < Node < Object
Una polilínea 2D que se puede texturizar opcionalmente.
Descripción
Este nodo dibuja una polilínea 2D, es decir, una forma que consta de varios puntos conectados por segmentos. Line2D no es una polilínea matemática, es decir, los segmentos no son infinitamente delgados. Está destinado a la renderización y puede colorearse y texturizarse opcionalmente.
Advertencia: Ciertas configuraciones pueden ser imposibles de dibujar bien, como ángulos muy agudos. En estas situaciones, el nodo utiliza una lógica de dibujo alternativa para que se vea decente.
Nota: Line2D se dibuja usando una malla 2D.
Tutoriales
Propiedades
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Métodos
void |
|
void |
|
get_point_count() const |
|
get_point_position(index: int) const |
|
void |
remove_point(index: int) |
void |
set_point_position(index: int, position: Vector2) |
Enumeraciones
enum LineJointMode: 🔗
LineJointMode LINE_JOINT_SHARP = 0
Hace que las uniones de la polilínea sean puntiagudas, conectando los lados de los dos segmentos extendiéndolos hasta que se intersecten. Si la rotación de una unión es demasiado grande (basada en sharp_limit), la unión recurre a LINE_JOINT_BEVEL para evitar ingletes muy largos.
LineJointMode LINE_JOINT_BEVEL = 1
Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line.
LineJointMode LINE_JOINT_ROUND = 2
Hace que las uniones de la polilínea sean redondeadas, conectando los lados de los dos segmentos con un arco. El detalle de este arco depende de round_precision.
enum LineCapMode: 🔗
LineCapMode LINE_CAP_NONE = 0
No dibuja un remate de línea.
LineCapMode LINE_CAP_BOX = 1
Dibuja el remate de línea como una caja, extendiendo ligeramente el primer/último segmento.
LineCapMode LINE_CAP_ROUND = 2
Dibuja el extremo de la línea como un semicírculo adjunto al primer/último segmento.
enum LineTextureMode: 🔗
LineTextureMode LINE_TEXTURE_NONE = 0
Toma los píxeles de la izquierda de la textura y los renderiza sobre toda la polilínea.
LineTextureMode LINE_TEXTURE_TILE = 1
Coloca la textura en mosaico sobre la polilínea. CanvasItem.texture_repeat del nodo Line2D debe ser CanvasItem.TEXTURE_REPEAT_ENABLED o CanvasItem.TEXTURE_REPEAT_MIRROR para que funcione correctamente.
LineTextureMode LINE_TEXTURE_STRETCH = 2
Estira la textura a través de la polilínea. CanvasItem.texture_repeat del nodo Line2D debe ser CanvasItem.TEXTURE_REPEAT_DISABLED para obtener los mejores resultados.
Descripciones de Propiedades
Si es true, el borde de la polilínea tendrá antialiasing.
Nota: Line2D no se acelera mediante el procesamiento por lotes cuando se le aplica antialiasing.
LineCapMode begin_cap_mode = 0 🔗
void set_begin_cap_mode(value: LineCapMode)
LineCapMode get_begin_cap_mode()
El estilo del principio de la polilínea, si closed es false.
Si es true, y la polilínea tiene más de 2 puntos, el último punto y el primero se conectarán mediante un segmento.
Nota: No se garantiza que la forma del segmento de cierre sea perfecta si se proporciona una width_curve.
Nota: La unión entre el segmento de cierre y el primer segmento se dibuja primero y muestrea el gradient y la width_curve al principio. Este es un detalle de implementación que podría cambiar en una versión futura.
Color default_color = Color(1, 1, 1, 1) 🔗
El color de la polilínea. No se utilizará si se establece un gradiente.
LineCapMode end_cap_mode = 0 🔗
void set_end_cap_mode(value: LineCapMode)
LineCapMode get_end_cap_mode()
El estilo del final de la polilínea, si closed es false.
El gradiente se dibuja a través de toda la línea de principio a fin. El default_color no se utilizará si se establece esta propiedad.
LineJointMode joint_mode = 0 🔗
void set_joint_mode(value: LineJointMode)
LineJointMode get_joint_mode()
El estilo de las conexiones entre los segmentos de la polilínea.
PackedVector2Array points = PackedVector2Array() 🔗
void set_points(value: PackedVector2Array)
PackedVector2Array get_points()
Los puntos de la polilínea, interpretados en coordenadas 2D locales. Los segmentos se dibujan entre los puntos adyacentes de esta matriz.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
La suavidad utilizada para las uniones y remates redondeados. Los valores más altos dan como resultado esquinas más suaves, pero son más exigentes de renderizar y actualizar.
Determina el límite de inglete de la polilínea. Normalmente, cuando joint_mode se establece en LINE_JOINT_SHARP, los ángulos agudos recurren a la lógica de las uniones LINE_JOINT_BEVEL para evitar ingletes muy largos. Los valores más altos de esta propiedad significan que el retorno a una unión biselada ocurrirá en ángulos más agudos.
La textura utilizada para la polilínea. Utiliza texture_mode para el estilo de dibujo.
LineTextureMode texture_mode = 0 🔗
void set_texture_mode(value: LineTextureMode)
LineTextureMode get_texture_mode()
El estilo para renderizar la texture de la polilínea.
El ancho de la polilínea.
La curva de anchura de la polilínea. La anchura de la polilínea a lo largo de su longitud será equivalente al valor de la curva de anchura sobre su dominio. La curva de anchura debe ser una Curve unitaria.
Descripciones de Métodos
void add_point(position: Vector2, index: int = -1) 🔗
Añade un punto con la position especificada en relación con la propia posición de la polilínea. Si no se proporciona ningún index, el nuevo punto se añadirá al final de la matriz de puntos.
Si se proporciona index, el nuevo punto se inserta antes del punto existente identificado por el índice index. Los índices de los puntos después del nuevo punto se incrementan en 1. El index proporcionado no debe exceder el número de puntos existentes en la polilínea. Véase get_point_count().
void clear_points() 🔗
Elimina todos los puntos de la polilínea, dejándola vacía.
Devuelve el número de puntos en la polilínea.
Vector2 get_point_position(index: int) const 🔗
Devuelve la posición del punto en el índice index.
void remove_point(index: int) 🔗
Elimina el punto en el índice index de la polilínea.
void set_point_position(index: int, position: Vector2) 🔗
Sobrescribe la posición del punto en el index dado con la position proporcionada.