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.

Line2D

Eredita: Node2D < CanvasItem < Node < Object

Una polilinea 2D che può essere opzionalmente texturizzata.

Descrizione

Questo nodo disegna una polilinea 2D, ovvero una forma composta da diversi punti collegati da segmenti. Line2D non è una polilinea matematica, ovvero i segmenti non sono infinitamente sottili. È destinata al rendering e può essere colorata e opzionalmente texturizzata.

Attenzione: Alcune configurazioni potrebbero essere impossibili da disegnare bene, come angoli molto acuti. In queste situazioni, il nodo utilizza una logica di disegno di riserva per apparire decente.

Nota: Line2D è disegnata utilizzando una mesh 2D.

Tutorial

Proprietà

bool

antialiased

false

LineCapMode

begin_cap_mode

0

bool

closed

false

Color

default_color

Color(1, 1, 1, 1)

LineCapMode

end_cap_mode

0

Gradient

gradient

LineJointMode

joint_mode

0

PackedVector2Array

points

PackedVector2Array()

int

round_precision

8

float

sharp_limit

2.0

Texture2D

texture

LineTextureMode

texture_mode

0

float

width

10.0

Curve

width_curve

Metodi

void

add_point(position: Vector2, index: int = -1)

void

clear_points()

int

get_point_count() const

Vector2

get_point_position(index: int) const

void

remove_point(index: int)

void

set_point_position(index: int, position: Vector2)


Enumerazioni

enum LineJointMode: 🔗

LineJointMode LINE_JOINT_SHARP = 0

Rende appuntite le giunzioni della polilinea, collegando i lati dei due segmenti estendendoli fino a quando non si intersecano. Se la rotazione di una giuntura è troppo grande (in base a sharp_limit), la giuntura torna a LINE_JOINT_BEVEL per evitare tagli obliqui molto lunghi.

LineJointMode LINE_JOINT_BEVEL = 1

Rende smussate le giunzioni della polilinea, collegando i lati dei due segmenti con una semplice linea .

LineJointMode LINE_JOINT_ROUND = 2

Rende arrotondate le giunzioni della polilinea, collegando i lati dei due segmenti con un arco. Il dettaglio di questo arco dipende da round_precision.


enum LineCapMode: 🔗

LineCapMode LINE_CAP_NONE = 0

Non disegna alcun limite.

LineCapMode LINE_CAP_BOX = 1

Disegna il limite della linea come un riquadro, estendendo leggermente il primo o ultimo segmento.

LineCapMode LINE_CAP_ROUND = 2

Disegna il limite della linea come un semicerchio attaccato al primo o ultimo segmento.


enum LineTextureMode: 🔗

LineTextureMode LINE_TEXTURE_NONE = 0

Prende i pixel di sinistra della texture e li renderizza sull'intera polilinea.

LineTextureMode LINE_TEXTURE_TILE = 1

Piastrella la texture sulla polilinea. CanvasItem.texture_repeat del nodo Line2D deve essere CanvasItem.TEXTURE_REPEAT_ENABLED o CanvasItem.TEXTURE_REPEAT_MIRROR affinché funzioni correttamente.

LineTextureMode LINE_TEXTURE_STRETCH = 2

Allunga la texture lungo la polilinea. Per ottenere migliori risultati, CanvasItem.texture_repeat del nodo Line2D deve essere CanvasItem.TEXTURE_REPEAT_DISABLED.


Descrizioni delle proprietà

bool antialiased = false 🔗

  • void set_antialiased(value: bool)

  • bool get_antialiased()

Se true, è applicato l'antialiasing sul bordo della polilinea.

Nota: Line2D non è accelerato dal batching quando è applicato l'antialiasing.


LineCapMode begin_cap_mode = 0 🔗

Lo stile dell'inizio della polilinea, se closed è false.


bool closed = false 🔗

  • void set_closed(value: bool)

  • bool is_closed()

Se true e la polilinea ha più di 2 punti, l'ultimo punto e il primo saranno collegati da un segmento.

Nota: Non è garantito che la forma del segmento di chiusura sia perfetta se width_curve è definita.

Nota: La giunzione tra il segmento di chiusura e il primo segmento è disegnata per prima e campiona gradient e width_curve all'inizio. Questo è un dettaglio di implementazione che potrebbe cambiare in una versione futura.


Color default_color = Color(1, 1, 1, 1) 🔗

  • void set_default_color(value: Color)

  • Color get_default_color()

Il colore della polilinea. Non sarà utilizzato se è impostato un gradiente.


LineCapMode end_cap_mode = 0 🔗

Lo stile della fine della polilinea, se closed è false.


Gradient gradient 🔗

Il gradiente che è disegnato lungo l'intera linea dall'inizio alla fine. default_color non sarà utilizzato se questa proprietà è impostata.


LineJointMode joint_mode = 0 🔗

Lo stile dei collegamenti tra i segmenti della polilinea.


PackedVector2Array points = PackedVector2Array() 🔗

I punti della polilinea, interpretati in coordinate 2D locali. I segmenti sono disegnati tra i punti adiacenti in questo array.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.


int round_precision = 8 🔗

  • void set_round_precision(value: int)

  • int get_round_precision()

La rotondità utilizzata per giunzioni e tappi arrotondati. Valori più alti producono angoli più smussati, ma sono più impegnativi da renderizzare e aggiornare.


float sharp_limit = 2.0 🔗

  • void set_sharp_limit(value: float)

  • float get_sharp_limit()

Determina il limite di smusso della polilinea. Normalmente, quando joint_mode è impostato su LINE_JOINT_SHARP, gli angoli acuti ricadono alla logica delle giunzioni LINE_JOINT_BEVEL per impedire smussi molto lunghi. Valori più alti di questa proprietà indicano che il ricadimento a una giunzione smussata avverrà ad angoli più acuti.


Texture2D texture 🔗

La texture usata per la polilinea. Usa texture_mode per lo stile di disegno.


LineTextureMode texture_mode = 0 🔗

Lo stile per renderizzare la texture della polilinea.


float width = 10.0 🔗

Lo spessore della polilinea.


Curve width_curve 🔗

La curva di larghezza della polilinea. La larghezza della polilinea sulla sua lunghezza sarà equivalente al valore della curva di larghezza sul suo dominio. La curva di larghezza dovrebbe essere una Curve unitaria.


Descrizioni dei metodi

void add_point(position: Vector2, index: int = -1) 🔗

Aggiunge un punto con la posizione position relativa alla posizione della polilinea stessa. Se l'indice index non è fornito , il nuovo punto sarà aggiunto alla fine dell'array di punti.

Se index è fornito, il nuovo punto sarà inserito prima del punto esistente identificato dall'indice index. Gli indici dei punti dopo il nuovo punto sono aumentati di 1. index non deve superare il numero di punti esistenti nella polilinea. Vedi get_point_count().


void clear_points() 🔗

Rimuove tutti i punti dalla polilinea, rendendola vuota.


int get_point_count() const 🔗

Restituisce il numero di punti nella polilinea.


Vector2 get_point_position(index: int) const 🔗

Restituisce la posizione del punto all'indice index.


void remove_point(index: int) 🔗

Rimuove il punto all'indice index dalla polilinea.


void set_point_position(index: int, position: Vector2) 🔗

Sovrascrive la posizione del punto all'index fornito con la posizione position fornita.