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.
Checking the stable version of the documentation...
CanvasItem
Classe di base astratta per ogni nodo nello spazio 2D.
Descrizione
Classe base astratta per tutto ciò che si trova nello spazio 2D. Gli elementi canvas sono disposti in un albero; i figli ereditano ed estendono la trasformazione del genitore. CanvasItem è esteso da Control per i nodi che riguardano la GUI e da Node2D per gli oggetti di gioco 2D.
Qualsiasi CanvasItem può disegnare. Per fare ciò, il motore chiama queue_redraw(), quindi NOTIFICATION_DRAW sarà ricevuto durante il tempo di inattività per richiedere un ridisegno. Per questo motivo, gli elementi canvas non hanno bisogno di ridisegnarsi a ogni frame, migliorando notevolmente le prestazioni. Sono disponibili diverse funzioni per disegnare su CanvasItem (consulare le funzioni draw_*). Tuttavia, è solo possibile utilizzarle all'interno di _draw(), della sua notifica corrispondente (Object._notification()) o di metodi connessi al segnale draw.
Gli elementi canvas sono disegnati in ordine ad albero sul loro livello canvas. Come predefinito, i figli si trovano sopra i genitori, quindi un CanvasItem radice sarà disegnato dietro tutto. È possibile cambiare questo comportamento per ogni singolo elemento.
Un CanvasItem può essere nascosto, nascondendo così anche i suoi figli. Cambiando varie altre proprietà di un CanvasItem, è anche possibile modularne il colore (tramite modulate o self_modulate), modificarne l'indice Z, la modalità di fusione e altro ancora.
Si noti che proprietà come trasformazione, modulazione e visibilità sono propagate solo ai nodi CanvasItem figlio diretti. Se è presente un nodo non CanvasItem intermedio, come Node o AnimationPlayer, i nodi CanvasItem sottostanti avranno una "catena" indipendente per la posizione e per modulate. Vedi anche top_level.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Metodi
void |
_draw() virtual |
void |
draw_animation_slice(animation_length: float, slice_begin: float, slice_end: float, offset: float = 0.0) |
void |
draw_arc(center: Vector2, radius: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = -1.0, antialiased: bool = false) |
void |
draw_char(font: Font, pos: Vector2, char: String, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const |
void |
draw_char_outline(font: Font, pos: Vector2, char: String, font_size: int = 16, size: int = -1, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const |
void |
draw_circle(position: Vector2, radius: float, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) |
void |
draw_colored_polygon(points: PackedVector2Array, color: Color, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null) |
void |
draw_dashed_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, dash: float = 2.0, aligned: bool = true, antialiased: bool = false) |
void |
draw_ellipse(position: Vector2, major: float, minor: float, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) |
void |
draw_ellipse_arc(center: Vector2, major: float, minor: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = -1.0, antialiased: bool = false) |
void |
|
void |
draw_lcd_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1)) |
void |
draw_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, antialiased: bool = false) |
void |
draw_mesh(mesh: Mesh, texture: Texture2D, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), modulate: Color = Color(1, 1, 1, 1)) |
void |
draw_msdf_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), outline: float = 0.0, pixel_range: float = 4.0, scale: float = 1.0) |
void |
draw_multiline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false) |
void |
draw_multiline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) |
void |
draw_multiline_string(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_multiline_string_outline(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_multimesh(multimesh: MultiMesh, texture: Texture2D) |
void |
draw_polygon(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null) |
void |
draw_polyline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false) |
void |
draw_polyline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) |
void |
draw_primitive(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array, texture: Texture2D = null) |
void |
draw_rect(rect: Rect2, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) |
void |
draw_set_transform(position: Vector2, rotation: float = 0.0, scale: Vector2 = Vector2(1, 1)) |
void |
draw_set_transform_matrix(xform: Transform2D) |
void |
draw_string(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_string_outline(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_style_box(style_box: StyleBox, rect: Rect2) |
void |
draw_texture(texture: Texture2D, position: Vector2, modulate: Color = Color(1, 1, 1, 1)) |
void |
draw_texture_rect(texture: Texture2D, rect: Rect2, tile: bool, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false) |
void |
draw_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true) |
void |
|
get_canvas() const |
|
get_canvas_item() const |
|
get_canvas_layer_node() const |
|
get_canvas_transform() const |
|
get_global_mouse_position() const |
|
get_global_transform() const |
|
get_global_transform_with_canvas() const |
|
get_instance_shader_parameter(name: StringName) const |
|
get_local_mouse_position() const |
|
get_screen_transform() const |
|
get_transform() const |
|
get_viewport_rect() const |
|
get_viewport_transform() const |
|
get_visibility_layer_bit(layer: int) const |
|
get_world_2d() const |
|
void |
hide() |
is_visible_in_tree() const |
|
make_canvas_position_local(viewport_point: Vector2) const |
|
make_input_local(event: InputEvent) const |
|
void |
|
void |
|
void |
set_instance_shader_parameter(name: StringName, value: Variant) |
void |
set_notify_local_transform(enable: bool) |
void |
set_notify_transform(enable: bool) |
void |
set_visibility_layer_bit(layer: int, enabled: bool) |
void |
show() |
Segnali
draw() 🔗
Emesso quando il CanvasItem deve essere ridisegnato, dopo la relativa notifica NOTIFICATION_DRAW e prima che viene chiamato _draw().
Nota: Le connessioni differite non consentono il disegno tramite i metodi draw_*.
Emesso quando questo nodo diventa nascosto, ovvero non è più visibile nell'albero (vedi is_visible_in_tree()).
item_rect_changed() 🔗
Emesso quando i confini Rect2 del CanvasItem (posizione o dimensioni) sono cambiati o quando si svolge un'azione che potrebbe aver influito su tali confini (ad esempio la modifica di Sprite2D.texture).
visibility_changed() 🔗
Emesso quando la visibilità del CanvasItem cambia, che sia perché è cambiata la sua proprietà visible o perché è cambiata la sua visibilità nell'albero (vedi is_visible_in_tree()).
Questo segnale viene emesso dopo la notifica correlata NOTIFICATION_VISIBILITY_CHANGED.
Enumerazioni
enum TextureFilter: 🔗
TextureFilter TEXTURE_FILTER_PARENT_NODE = 0
Il CanvasItem erediterà il filtro dal suo genitore.
TextureFilter TEXTURE_FILTER_NEAREST = 1
Il filtro della texture legge solamente il pixel più vicino. Ciò rende la texture pixellata da vicino, e granulosa da lontano (poiché non sono campionate le mipmap).
TextureFilter TEXTURE_FILTER_LINEAR = 2
Il filtro della texture fonde tra i 4 pixel più vicini. Ciò rende la texture liscia da vicino e granulosa da lontano (poiché non sono campionate le mipmap).
TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3
Il filtro della texture legge dal pixel più vicino e lo fonde tra le 2 mipmap più vicine (o usa la mipmap più vicina se ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter è true). Ciò rende la texture pixelata da vicino, e liscia da lontano.
Usa questo filtro per texture non pixel art che potrebbero visualizzarsi a bassa scala (ad esempio a causa dello zoom Camera2D o del ridimensionamento degli sprite), poiché le mipmap sono importanti per smussare i pixel più piccoli dei pixel sullo schermo.
TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4
Il filtro della texture fonde tra i 4 pixel più vicini e tra le 2 mipmap più vicine (o usa la mipmap più vicina se ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter è true). Ciò rende la texture liscia da vicino, e liscia da lontano.
Usa questo filtro per texture non pixel art che potrebbero visualizzarsi a bassa scala (ad esempio a causa dello zoom Camera2D o del ridimensionamento degli sprite), poiché le mipmap sono importanti per smussare i pixel più piccoli dei pixel sullo schermo.
TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5
Il filtro della texture legge dal pixel più vicino e lo fonde tra le 2 mipmap più vicine (o usa la mipmap più vicina se ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter è true) a seconda dell'angolo tra la superficie e la vista della telecamera. Ciò rende la texture pixelata da vicino, e liscia da lontano. Il filtro anisotropico migliora la qualità delle texture sulle superfici quasi in linea con la telecamera, ma è leggermente più lento. Il livello di filtro anisotropico si può cambiare regolando ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level.
Nota: Questo filtro di texture è raramente utile nei progetti 2D. TEXTURE_FILTER_NEAREST_WITH_MIPMAPS è solitamente più appropriato in questo caso.
TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6
Il filtro della texture fonde tra i 4 pixel più vicini e tra le 2 mipmap più vicine (o usa la mipmap più vicina se ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter è true) a seconda dell'angolo tra la superficie e la vista della telecamera. Ciò rende la texture liscia da vicino, e liscia da lontano. Il filtro anisotropico migliora la qualità delle texture sulle superfici quasi in linea con la telecamera, ma è leggermente più lento. Il livello di filtro anisotropico si può cambiare regolando ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level.
Nota: Questo filtro di texture è raramente utile nei progetti 2D. TEXTURE_FILTER_LINEAR_WITH_MIPMAPS è solitamente più appropriato in questo caso.
TextureFilter TEXTURE_FILTER_MAX = 7
Rappresenta la dimensione dell'enumerazione TextureFilter.
enum TextureRepeat: 🔗
TextureRepeat TEXTURE_REPEAT_PARENT_NODE = 0
The CanvasItem will inherit the repeat mode from its parent.
TextureRepeat TEXTURE_REPEAT_DISABLED = 1
La texture non si ripete. Campionare la texture al di fuori dei suoi limiti produrrà uno "stiramento" dei pixel sul bordo. È possibile evitare ciò assicurandosi che ci sia un bordo di 1 pixel completamente trasparente su ciascun lato della texture.
TextureRepeat TEXTURE_REPEAT_ENABLED = 2
La texture si ripete quando eccede le dimensioni della texture stessa.
TextureRepeat TEXTURE_REPEAT_MIRROR = 3
La texture si ripete quando eccede le dimensioni della texture stessa, in una "modalità a piastrelle 2×2". Le texture ripetute alle posizioni pari sono rispecchiate.
TextureRepeat TEXTURE_REPEAT_MAX = 4
Rappresenta la dimensione dell'enumerazione TextureRepeat.
enum ClipChildrenMode: 🔗
ClipChildrenMode CLIP_CHILDREN_DISABLED = 0
I figli sono disegnati su questo nodo e non sono ritagliati.
ClipChildrenMode CLIP_CHILDREN_ONLY = 1
Questo nodo è utilizzato come maschera e non è disegnato. La maschera si basa sul canale alfa di questo nodo: i pixel opachi sono mantenuti, i pixel trasparenti sono scartati e i pixel semitrasparenti sono sfumati in base alla loro opacità. I figli sono ritagliati nell'area disegnata di questo nodo.
ClipChildrenMode CLIP_CHILDREN_AND_DRAW = 2
Questo nodo è utilizzato come maschera ed è anche disegnato. La maschera si basa sul canale alfa di questo nodo: i pixel opachi sono mantenuti, i pixel trasparenti sono scartati e i pixel semitrasparenti sono sfumati in base alla loro opacità. I figli sono ritagliati nell'area disegnata di questo nodo.
ClipChildrenMode CLIP_CHILDREN_MAX = 3
Rappresenta la dimensione dell'enumerazione ClipChildrenMode.
Costanti
NOTIFICATION_TRANSFORM_CHANGED = 2000 🔗
Notifica ricevuta quando la trasformazione globale di questo nodo cambia, se is_transform_notification_enabled() è true. Vedi anche set_notify_transform() e get_transform().
Nota: Molti elementi canvas come Camera2D o CollisionObject2D abilitano questa automaticamente per funzionare correttamente.
NOTIFICATION_LOCAL_TRANSFORM_CHANGED = 35 🔗
Notifica ricevuta quando la trasformazione di questo nodo cambia, se is_local_transform_notification_enabled() è true. Questa notifica non viene ricevuta quando la trasformazione di un nodo Node2D genitore cambia. Vedi anche set_notify_local_transform().
Nota: Molti elementi canvas come Camera2D o CollisionObject2D abilitano questa automaticamente per funzionare correttamente.
NOTIFICATION_DRAW = 30 🔗
Viene richiesto di disegnare il CanvasItem (vedi _draw()).
NOTIFICATION_VISIBILITY_CHANGED = 31 🔗
Notifica ricevuta quando la visibilità di questo nodo cambia (vedi visible e is_visible_in_tree()).
Questa notifica viene ricevuta prima del segnale corrispondente visibility_changed.
NOTIFICATION_ENTER_CANVAS = 32 🔗
Il CanvasItem è entrato nel canvas.
NOTIFICATION_EXIT_CANVAS = 33 🔗
The CanvasItem has exited the canvas.
This notification is sent in reversed order.
NOTIFICATION_WORLD_2D_CHANGED = 36 🔗
Notifica ricevuta quando questo CanvasItem è registrato in un nuovo World2D (vedi get_world_2d()).
Descrizioni delle proprietà
ClipChildrenMode clip_children = 0 🔗
void set_clip_children_mode(value: ClipChildrenMode)
ClipChildrenMode get_clip_children_mode()
La modalità con cui questo nodo ritaglia i suoi figli, fungendo da maschera.
Nota: Non è possibile annidare o inserire i nodi ritagliati in un CanvasGroup. Se un antenato di questo nodo ritaglia i suoi figli o è un CanvasGroup, è necessario impostare la modalità di ritaglio di questo nodo su CLIP_CHILDREN_DISABLED per evitare comportamenti imprevisti.
Gli strati di rendering in cui questo CanvasItem risponde ai nodi Light2D.
Il materiale applicato a questo CanvasItem.
Color modulate = Color(1, 1, 1, 1) 🔗
Il colore applicato a questo CanvasItem. Questa proprietà influisce sui CanvasItem figli, a differenza di self_modulate che influisce solo sul nodo stesso.
Color self_modulate = Color(1, 1, 1, 1) 🔗
Il colore applicato a questo CanvasItem. Questa proprietà non influisce sui CanvasItem figli, a differenza di modulate che influisce sia sul nodo stesso sia sui suoi figli.
Nota: Anche i figli interni non sono influenzati da questa proprietà (vedi il parametro include_internal in Node.get_child()). Per i nodi integrati, ciò include gli slider in ColorPicker e la barra delle schede in TabContainer.
bool show_behind_parent = false 🔗
Se true, questo nodo si disegna dietro il suo genitore.
TextureFilter texture_filter = 0 🔗
void set_texture_filter(value: TextureFilter)
TextureFilter get_texture_filter()
La modalità di filtro usata per renderizzare le texture di questo CanvasItem.
TextureRepeat texture_repeat = 0 🔗
void set_texture_repeat(value: TextureRepeat)
TextureRepeat get_texture_repeat()
La modalità di ripetizione utilizzata per renderizzare le texture di questo CanvasItem. Influisce su ciò che accade quando la texture è campionata al di fuori dei suoi limiti, ad esempio impostando un Sprite2D.region_rect più grande della texture o assegnando punti UV di un Polygon2D al di fuori della texture.
Nota: TextureRect non è influenzato da texture_repeat, poiché utilizza una propria implementazione per ripetere le texture.
Se true, questo CanvasItem non erediterà la sua trasformazione dai CanvasItem genitori. Anche il suo ordine di disegno sarà modificato per disegnarlo sopra altri CanvasItem che non hanno top_level impostato su true. Il CanvasItem si comporterà effettivamente come se fosse un figlio di un semplice Node.
bool use_parent_material = false 🔗
Se true, il material del CanvasItem genitore è utilizzato come materiale di questo nodo.
The rendering layer in which this CanvasItem is rendered by Viewport nodes. A Viewport will render a CanvasItem if it and all its parents share a layer with the Viewport's canvas cull mask.
Note: A CanvasItem does not inherit its parents' visibility layers. This means that if a parent CanvasItem does not have all the same layers as its child, the child may not be visible even if both the parent and child have visible set to true. For example, if a parent has layer 1 and a child has layer 2, the child will not be visible in a Viewport with the canvas cull mask set to layer 1 or 2 (see Viewport.canvas_cull_mask). To ensure that both the parent and child are visible, the parent must have both layers 1 and 2, or the child must have top_level set to true.
Se true, questo CanvasItem potrebbe essere disegnato. Se questo CanvasItem sia effettivamente disegnato dipende dalla visibilità di tutti i suoi CanvasItem antenati. In altre parole: questo CanvasItem sarà disegnato quando is_visible_in_tree() restituisce true e tutti i CanvasItem antenati condividono almeno uno strato di visibilità (visibility_layer) con questo CanvasItem.
Nota: Per i controlli che ereditano Popup, il modo corretto per renderli visibili è di invece chiamare una delle molteplici funzioni popup*().
Se true, questo e i nodi CanvasItem figli con una posizione in Y più alta sono renderizzati davanti ai nodi con una posizione in Y più bassa. Se false, questo nodo e i CanvasItem figli sono renderizzati normalmente nell'ordine dell'albero di scene.
Con l'ordinamento in Y abilitato su un nodo genitore ('A') ma disabilitato su un nodo figlio ('B'), il nodo figlio ('B') è ordinato ma i suoi figli ('C1', 'C2', ecc.) renderizzano insieme sulla stessa posizione in Y del nodo figlio ("B"). Ciò consente di organizzare l'ordine di rendering di una scena senza modificare l'albero di scene.
I nodi sono ordinati l'uno rispetto all'altro solo se si trovano sullo stesso z_index.
Se true, l'indice Z effettivo di questo nodo è relativo all'indice Z del suo genitore.
Ad esempio, se z_index è 2 e l'indice Z effettivo del suo genitore è 3, allora l'indice Z effettivo di questo nodo sarà 5 (2 + 3).
Controlla l'ordine in cui sono disegnati i nodi. Un nodo con un indice Z più alto sarà visualizzato davanti agli altri. Deve essere compreso tra RenderingServer.CANVAS_ITEM_Z_MIN e RenderingServer.CANVAS_ITEM_Z_MAX (inclusi).
Nota: L'indice Z non influisce sull'ordine in cui sono elaborati i nodi CanvasItem o sul modo in cui sono gestiti gli eventi di input. Questo è particolarmente importante da tenere in mente per i nodi Control.
Descrizioni dei metodi
void _draw() virtual 🔗
Chiamato quando questo CanvasItem è stato richiesto di ridisegnare (dopo che è stato chiamato il metodo queue_redraw(), manualmente o dal motore).
Corrisponde alla notifica NOTIFICATION_DRAW in Object._notification().
void draw_animation_slice(animation_length: float, slice_begin: float, slice_end: float, offset: float = 0.0) 🔗
I comandi di disegno successivi verranno ignorati a meno che non rientrino nella sezione di animazione specificata. Questo è un modo più rapido per implementare animazioni che si ripetono sullo sfondo anziché ridisegnarle costantemente.
void draw_arc(center: Vector2, radius: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Draws an unfilled arc between the given angles with a uniform color and width and optional antialiasing (supported only for positive width). The larger the value of point_count, the smoother the curve. center is defined in local space. For elliptical arcs, see draw_ellipse_arc(). See also draw_circle().
If width is negative, it will be ignored and the arc will be drawn using RenderingServer.PRIMITIVE_LINE_STRIP. This means that when the CanvasItem is scaled, the arc will remain thin. If this behavior is not desired, then pass a positive width like 1.0.
The arc is drawn from start_angle towards the value of end_angle so in clockwise direction if start_angle < end_angle and counter-clockwise otherwise. Passing the same angles but in reversed order will produce the same arc. If absolute difference of start_angle and end_angle is greater than @GDScript.TAU radians, then a full circle arc is drawn (i.e. arc will not overlap itself).
void draw_char(font: Font, pos: Vector2, char: String, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const 🔗
Disegna il primo carattere di una stringa usando un font personalizzato. Se oversampling è maggiore di zero, è utilizzato come fattore di sovracampionamento del font, altrimenti sono utilizzate le impostazioni di sovracampionamento della viewport. pos è definito in spazio locale.
void draw_char_outline(font: Font, pos: Vector2, char: String, font_size: int = 16, size: int = -1, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const 🔗
Disegna il contorno del primo carattere di una stringa usando un font personalizzato. Se oversampling è maggiore di zero, è utilizzato come fattore di sovracampionamento del font, altrimenti sono utilizzate le impostazioni di sovracampionamento della viewport. pos è definito in spazio locale.
void draw_circle(position: Vector2, radius: float, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) 🔗
Draws a circle, with position defined in local space. See also draw_ellipse(), draw_arc(), draw_polyline(), and draw_polygon().
If filled is true, the circle will be filled with the color specified. If filled is false, the circle will be drawn as a stroke with the color and width specified.
If width is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive width like 1.0.
If antialiased is true, half transparent "feathers" will be attached to the boundary, making outlines smooth.
Note: width is only effective if filled is false.
void draw_colored_polygon(points: PackedVector2Array, color: Color, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null) 🔗
Draws a colored polygon of any number of points, convex or concave. The points in the points array are defined in local space. Unlike draw_polygon(), a single color must be specified for the whole polygon.
Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with Geometry2D.triangulate_polygon() and using draw_mesh(), draw_multimesh(), or RenderingServer.canvas_item_add_triangle_array().
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_dashed_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, dash: float = 2.0, aligned: bool = true, antialiased: bool = false) 🔗
Disegna una linea tratteggiata da un punto 2D a un altro, con un colore e uno spessore specificati. Le posizioni from e to sono definite in spazio locale. Vedi anche draw_line(), draw_multiline() e draw_polyline().
Se width è negativo, verrà disegnata una primitiva a due punti invece di una a quattro punti. Ciò significa che quando il CanvasItem viene ridimensionato, le parti della linea rimarranno sottile. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
dash è la lunghezza di ogni trattino in pixel, con lo spazio tra ogni trattino della stessa lunghezza. Se aligned è true, la lunghezza del primo e dell'ultimo trattino potrebbe essere accorciata o allungata per consentire alla linea di iniziare e finire nei punti precisi definiti da from e to. Entrambe le estremità sono sempre simmetriche quando aligned è true. Se aligned è false, tutti i trattini avranno la stessa lunghezza, ma la linea potrebbe apparire incompleta alla fine, a causa dei trattini che non si dividono equamente per la lunghezza della linea. Quando aligned è false, vengono disegnati solo trattini completi.
Se antialiased è true, al contorno verranno aggiunte delle "sfumature" semitrasparenti, rendendo i contorni più lisci.
Nota: antialiased è efficace solo se width è maggiore di 0.0.
void draw_ellipse(position: Vector2, major: float, minor: float, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) 🔗
Draws an ellipse with semi-major axis major and semi-minor axis minor. See also draw_circle(), draw_ellipse_arc(), draw_polyline(), and draw_polygon().
If filled is true, the ellipse will be filled with the color specified. If filled is false, the ellipse will be drawn as a stroke with the color and width specified.
If width is negative, then two-point primitives will be drawn instead of four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive width like 1.0.
If antialiased is true, half transparent "feathers" will be attached to the boundary, making outlines smooth.
Note: width is only effective if filled is false.
void draw_ellipse_arc(center: Vector2, major: float, minor: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Draws an unfilled elliptical arc between the given angles with a uniform color and width and optional antialiasing (supported only for positive width). The larger the value of point_count, the smoother the curve. For circular arcs, see draw_arc(). See also draw_ellipse().
If width is negative, it will be ignored and the arc will be drawn using RenderingServer.PRIMITIVE_LINE_STRIP. This means that when the CanvasItem is scaled, the arc will remain thin. If this behavior is not desired, then pass a positive width like 1.0.
The arc is drawn from start_angle towards the value of end_angle so in clockwise direction if start_angle < end_angle and counter-clockwise otherwise. Passing the same angles but in reversed order will produce the same arc. If absolute difference of start_angle and end_angle is greater than @GDScript.TAU radians, then a full ellipse is drawn (i.e. arc will not overlap itself).
void draw_end_animation() 🔗
Dopo aver inviato tutte le sezioni di animazione tramite draw_animation_slice(), è possibile utilizzare questa funzione per ripristinare il passaggio di disegno allo stato predefinito (tutti i comandi di disegno successivi saranno visibili). Se questo caso d'uso specifico non è desiderato, non è necessario utilizzare questa funzione dopo aver inviato le sezioni.
void draw_lcd_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1)) 🔗
Draws a textured rectangle region of the font texture with LCD subpixel anti-aliasing at a given position, optionally modulated by a color. The rect is defined in local space.
Texture is drawn using the following blend operation, blend mode of the CanvasItemMaterial is ignored:
dst.r = texture.r * modulate.r * modulate.a + dst.r * (1.0 - texture.r * modulate.a);
dst.g = texture.g * modulate.g * modulate.a + dst.g * (1.0 - texture.g * modulate.a);
dst.b = texture.b * modulate.b * modulate.a + dst.b * (1.0 - texture.b * modulate.a);
dst.a = modulate.a + dst.a * (1.0 - modulate.a);
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Disegna una linea da un punto 2D a un altro, con il colore e la larghezza specificati. È possibile opzionalmente applicare un antialiasing. Le posizioni from e to sono definite in spazio locale. Vedi anche draw_dashed_line(), draw_multiline() e draw_polyline().
Se width è negativo, verrà disegnata una primitiva a due punti invece di una a quattro punti. Ciò significa che quando il CanvasItem viene ridimensionato, la linea rimarrà sottile. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
void draw_mesh(mesh: Mesh, texture: Texture2D, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), modulate: Color = Color(1, 1, 1, 1)) 🔗
Draws a Mesh in 2D, using the provided texture. See MeshInstance2D for related documentation. The transform is defined in local space.
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_msdf_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), outline: float = 0.0, pixel_range: float = 4.0, scale: float = 1.0) 🔗
Draws a textured rectangle region of the multichannel signed distance field texture at a given position, optionally modulated by a color. The rect is defined in local space. See FontFile.multichannel_signed_distance_field for more information and caveats about MSDF font rendering.
If outline is positive, each alpha channel value of pixel in region is set to maximum value of true distance in the outline radius.
Value of the pixel_range should the same that was used during distance field texture generation.
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_multiline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Disegna più linee sconnesse con uno spessore (width) e un colore (color) uniformi. Ogni linea è definita da due punti consecutivi nell'array points in spazio locale, ovvero l'i-esimo segmento è costituito da points[2 * i], points[2 * i + 1] estremi. Quando si disegnano grandi quantità di linee, questa funzione è più veloce rispetto all'utilizzo di singole chiamate al metodo draw_line(). Per disegnare linee interconnesse, usare invece il metodo draw_polyline().
Se width è negativo, verrà disegnata una primitiva a due punti invece di una a quattro punti. Ciò significa che quando il CanvasItem viene ridimensionato, la linea rimarrà sottile. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
Nota: antialiased è efficace solo se width è maggiore di 0.0.
void draw_multiline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) 🔗
Disegna più linee sconnesse con uno spessore (width) uniforme e colore segmento-per-segmento . Ogni linea è definita da due punti consecutivi nell'array points in spazio locale, ovvero l'i-esimo segmento è costituito da points[2 * i], points[2 * i + 1] estremi e ha il colore colors[i]. Quando si disegnano grandi quantità di linee, questa funzione è più veloce rispetto all'utilizzo di singole chiamate al metodo draw_line(). Per disegnare linee interconnesse, usare invece il metodo draw_polyline_colors().
Se width è negativo, verrà disegnata una primitiva a due punti invece di una a quattro punti. Ciò significa che quando il CanvasItem viene ridimensionato, la linea rimarrà sottile. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
Nota: antialiased è efficace solo se width è maggiore di 0.0.
void draw_multiline_string(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Divide il testo text in righe e lo disegna attraverso il font specificato nella posizione pos in spazio locale (angolo in alto a sinistra). Il colore del testo verrà moltiplicato per modulate. Se width è maggiore o uguale a 0, il testo verrà troncato se supera la larghezza specificata. Se oversampling è maggiore di zero, è utilizzato come fattore di sovracampionamento del font, altrimenti sono utilizzate le impostazioni di sovracampionamento della viewport.
void draw_multiline_string_outline(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Divide il testo text in righe e ne disegna il contorno attraverso il font specificato nella posizione pos in spazio locale (angolo in alto a sinistra). Il colore del testo verrà moltiplicato per modulate. Se width è maggiore o uguale a 0, il testo verrà troncato se supera la larghezza specificata. Se oversampling è maggiore di zero, è utilizzato come fattore di sovracampionamento del font, altrimenti sono utilizzate le impostazioni di sovracampionamento della viewport.
void draw_multimesh(multimesh: MultiMesh, texture: Texture2D) 🔗
Draws a MultiMesh in 2D with the provided texture. See MultiMeshInstance2D for related documentation.
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_polygon(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null) 🔗
Draws a solid polygon of any number of points, convex or concave. Unlike draw_colored_polygon(), each point's color can be changed individually. The points array is defined in local space. See also draw_polyline() and draw_polyline_colors(). If you need more flexibility (such as being able to use bones), use RenderingServer.canvas_item_add_triangle_array() instead.
Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with Geometry2D.triangulate_polygon() and using draw_mesh(), draw_multimesh(), or RenderingServer.canvas_item_add_triangle_array().
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_polyline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Disegna segmenti interconnessi di linea con un colore (color) e uno spessore (width) uniformi e antialiasing opzionale (supportato solo per valori positivi di width). L'array points è definito in spazio locale. Quando si disegnano grandi quantità di linee, questo metodo è più veloce rispetto all'utilizzo di singole chiamate al metodo draw_line(). Per disegnare linee scollegate, usare invece il metodo draw_multiline(). Vedi anche draw_polygon().
Se width è negativo, verrà ignorato e la polilinea verrà disegnata utilizzando RenderingServer.PRIMITIVE_LINE_STRIP. Ciò significa che quando CanvasItem viene ridimensionato, la polilinea rimarrà sottile. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
void draw_polyline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) 🔗
Disegna segmenti di linea interconnessi con uno spessore (width) uniforme, colorazione punto per punto e antialiasing opzionale (supportato solo per valori positivi di width). I colori assegnati ai punti della linea corrispondono per indici tra points e colors, ovvero ogni segmento della linea è riempito con un gradiente tra i colori delle estremità. L'array points è definito in spazio locale. Quando si disegnano grandi quantità di linee, questo metodo è più veloce rispetto all'utilizzo di singole chiamate al metodo draw_line(). Per disegnare linee scollegate, usare invece draw_multiline_colors(). Vedi anche draw_polygon().
Se width è negativo, verrà ignorato e la polilinea verrà disegnata utilizzando RenderingServer.PRIMITIVE_LINE_STRIP. Ciò significa che quando CanvasItem viene ridimensionato, la polilinea rimarrà sottile. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
void draw_primitive(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array, texture: Texture2D = null) 🔗
Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. The points array is defined in local space. See also draw_line(), draw_polyline(), draw_polygon(), and draw_rect().
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_rect(rect: Rect2, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) 🔗
Disegna un rettangolo. Se filled è true, il rettangolo verrà riempito con il colore color. Se filled è false, il rettangolo verrà disegnato come un tratto con il colore color e lo spessore width. Il rettangolo rect è specificato in spazio locale. Vedi anche draw_texture_rect().
Se width è negativo, verranno disegnate primitive a due punti invece che a quattro. Ciò significa che quando il CanvasItem viene ridimensionato, le linee rimarranno sottili. Se questo comportamento non è desiderato, passare un valore positivo per width come 1.0.
Se antialiased è true, al contorno verranno aggiunte delle "sfumature" semitrasparenti, rendendo i contorni più lisci.
Nota: width è efficace solo se filled è false.
Nota: I rettangoli vuoti disegnati con un width negativo potrebbero non essere visualizzati perfettamente. Ad esempio, gli angoli potrebbero mancare o essere più chiari a causa di linee sovrapposte (per un color traslucido).
void draw_set_transform(position: Vector2, rotation: float = 0.0, scale: Vector2 = Vector2(1, 1)) 🔗
Imposta una trasformazione locale personalizzata per disegnare tramite componenti. Tutto ciò che sarà disegnato in seguito sarà trasformato da questa trasformazione.
Nota: FontFile.oversampling non tiene conto di scale. Ciò significa che aumentando o diminuendo la scala i font bitmap e i font dinamici rasterizzati (non MSDF) risulteranno sfocati o pixelati. Per garantire che il testo rimanga nitido a prescindere dalla scala, è possibile abilitare il rendering dei font MSDF abilitando ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (si applica solo al font predefinito del progetto) o abilitando Multichannel Signed Distance Field nelle opzioni di importazione di un DynamicFont per i font personalizzati. Sui font di sistema, è possibile abilitare SystemFont.multichannel_signed_distance_field nell'ispettore.
void draw_set_transform_matrix(xform: Transform2D) 🔗
Imposta una trasformazione locale personalizzata per il passaggio di disegno, tramite matrice. Tutto ciò che sarà disegnato in seguito sarà trasformato da questa trasformazione.
void draw_string(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Draws text using the specified font at the pos in local space (bottom-left corner using the baseline of the font). The text will have its color multiplied by modulate. If width is greater than or equal to 0, the text will be clipped if it exceeds the specified width. If oversampling is greater than zero, it is used as font oversampling factor, otherwise viewport oversampling settings are used.
Example: Draw "Hello world", using the project's default font:
draw_string(ThemeDB.fallback_font, Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, ThemeDB.fallback_font_size)
DrawString(ThemeDB.FallbackFont, new Vector2(64, 64), "Hello world", HorizontalAlignment.Left, -1, ThemeDB.FallbackFontSize);
See also Font.draw_string().
void draw_string_outline(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Disegna il contorno del testo text attraverso il font specificato nella posizione pos in spazio locale (angolo in basso a sinistra, usando la linea di base del font). Il colore del testo verrà moltiplicato per modulate. Se width è maggiore o uguale a 0, il testo verrà troncato se supera la larghezza specificata. Se oversampling è maggiore di zero, è utilizzato come fattore di sovracampionamento del font, altrimenti sono utilizzate le impostazioni di sovracampionamento della viewport.
void draw_style_box(style_box: StyleBox, rect: Rect2) 🔗
Draws a styled rectangle. The rect is defined in local space.
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_texture(texture: Texture2D, position: Vector2, modulate: Color = Color(1, 1, 1, 1)) 🔗
Draws a texture at a given position. The position is defined in local space.
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_texture_rect(texture: Texture2D, rect: Rect2, tile: bool, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false) 🔗
Draws a textured rectangle at a given position, optionally modulated by a color. The rect is defined in local space. If transpose is true, the texture will have its X and Y coordinates swapped. See also draw_rect() and draw_texture_rect_region().
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void draw_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true) 🔗
Draws a textured rectangle from a texture's region (specified by src_rect) at a given position in local space, optionally modulated by a color. If transpose is true, the texture will have its X and Y coordinates swapped. See also draw_texture_rect().
Note: Styleboxes, textures, and meshes stored only inside local variables should not be used with this method in GDScript, because the drawing operation doesn't begin immediately once this method is called. In GDScript, when the function with the local variables ends, the local variables get destroyed before the rendering takes place.
void force_update_transform() 🔗
Forza l'aggiornamento della trasformazione del nodo. Fallisce se il nodo non si trova all'interno dell'albero. Vedi anche get_transform()
Nota: Per motivi di prestazioni, le modifiche alle trasformazioni sono solitamente accumulate e applicate una sola volta alla fine del frame. L'aggiornamento si propaga anche attraverso i figli di CanvasItem. Pertanto, utilizzare questo metodo solo quando è necessaria una trasformazione aggiornata (ad esempio durante le operazioni di fisica).
Restituisce il RID del canvas World2D in cui è registrato questo nodo, utilizzato dal RenderingServer.
Restituisce il RID interno dell'elemento canvas utilizzato dal RenderingServer per questo nodo.
CanvasLayer get_canvas_layer_node() const 🔗
Restituisce il CanvasLayer che contiene questo nodo, o null se il nodo non è in alcun CanvasLayer.
Transform2D get_canvas_transform() const 🔗
Restituisce la trasformazione di questo nodo, convertita dal sistema di coordinate del suo canvas registrato al sistema di coordinate della sua viewport. Vedi anche Node.get_viewport().
Vector2 get_global_mouse_position() const 🔗
Restituisce la globale posizione del cursore del mouse relativa al CanvasLayer che contiene questo CanvasItem.
Nota: Per le coordinate nello spazio dello schermo (ad esempio quando si utilizza un Popup non incorporato), è possibile usare DisplayServer.mouse_get_position().
Transform2D get_global_transform() const 🔗
Restituisce la matrice di trasformazione globale di questo elemento, ovvero la trasformazione combinata fino al nodo CanvasItem più in alto. L'elemento più in alto è un CanvasItem che non ha un genitore, ha un genitore che non è CanvasItem o ha il suo top_level abilitato.
Transform2D get_global_transform_with_canvas() const 🔗
Restituisce la trasformazione dal sistema di coordinate locali di questo CanvasItem al sistema di coordinate del la Viewport.
Variant get_instance_shader_parameter(name: StringName) const 🔗
Ottieni il valore di un parametro dello shader impostato in questa istanza.
Vector2 get_local_mouse_position() const 🔗
Restituisce la posizione del mouse in questo CanvasItem utilizzando il sistema di coordinate locali di questo CanvasItem.
Transform2D get_screen_transform() const 🔗
Returns the transform of this CanvasItem in global screen coordinates (i.e. taking window position into account). Mostly useful for editor plugins.
Equivalent to get_global_transform_with_canvas() if the window is embedded (see Viewport.gui_embed_subwindows).
Transform2D get_transform() const 🔗
Restituisce la matrice di trasformazione di questo CanvasItem.
Rect2 get_viewport_rect() const 🔗
Restituisce i confini della viewport di questo nodo come Rect2. Vedi anche Node.get_viewport().
Transform2D get_viewport_transform() const 🔗
Restituisce la trasformazione di questo nodo, convertita dal sistema di coordinate del proprio canvas registrato al sistema di coordinate della viewport incorporatore. Vedi anche Viewport.get_final_transform() e Node.get_viewport().
bool get_visibility_layer_bit(layer: int) const 🔗
Restituisce true se lo strato all'indice specificato è impostato in visibility_layer.
World2D get_world_2d() const 🔗
Restituisce il World2D in cui è registrato questo nodo.
Di solito, questo è lo stesso utilizzato dalla viewport di questo nodo (vedi Node.get_viewport() e Viewport.find_world_2d()).
void hide() 🔗
Nasconde il CanvasItem se è attualmente visibile. Ciò equivale a impostare visible su false.
bool is_local_transform_notification_enabled() const 🔗
Restituisce true se il nodo riceve NOTIFICATION_LOCAL_TRANSFORM_CHANGED quando cambia la sua trasformazione locale. Ciò è abilitato con set_notify_local_transform().
bool is_transform_notification_enabled() const 🔗
Restituisce true, se il nodo riceve NOTIFICATION_TRANSFORM_CHANGED quando cambia la sua trasformazione globale. Ciò è abilitato con set_notify_transform().
bool is_visible_in_tree() const 🔗
Restituisce true se il nodo è presente in SceneTree, la sua proprietà visible è true e tutti i suoi antenati sono visibili. Se un antenato è nascosto, questo nodo non sarà visibile nell'albero di scene e quindi non verrà disegnato (vedi _draw()).
La visibilità viene verificata solo nei nodi genitore che ereditano da CanvasItem, CanvasLayer e Window. Se il genitore è di un altro tipo (ad esempio Node, AnimationPlayer o Node3D), è considerato visibile.
Nota: Questo metodo non tiene conto di visibility_layer, quindi anche se restituisce true, il nodo potrebbe non essere renderizzato.
Vector2 make_canvas_position_local(viewport_point: Vector2) const 🔗
Trasforma viewport_point dalle coordinate della viewport alle coordinate locali di questo nodo.
Per l'operazione opposta, usa get_global_transform_with_canvas().
var viewport_point = get_global_transform_with_canvas() * local_point
InputEvent make_input_local(event: InputEvent) const 🔗
Restituisce una copia dell'evento event con le sue coordinate convertite dallo spazio globale allo spazio locale di questo CanvasItem. Se non è possibile, restituisce lo stesso InputEvent senza cambiamenti.
void move_to_front() 🔗
Sposta questo nodo sotto i suoi fratelli, solitamente garantendo che il nodo sia disegnato sopra i suoi fratelli. Non fa nulla se questo nodo non ha un genitore. Vedi anche Node.move_child().
void queue_redraw() 🔗
Mette in coda il CanvasItem per ridisegnare. Durante il tempo di inattività, se CanvasItem è visibile, viene inviata NOTIFICATION_DRAW e viene chiamato _draw(). Ciò si verifica solo una volta per frame, anche se questo metodo è stato chiamato più volte.
void set_instance_shader_parameter(name: StringName, value: Variant) 🔗
Imposta il valore di un'uniforme di shader solo per questa istanza (uniforme per istanza). Consulta anche ShaderMaterial.set_shader_parameter() per assegnare un'uniforme a tutte le istanze che utilizzano lo stesso ShaderMaterial.
Nota: Affinché un'uniforme di shader possa essere assegnabile per istanza individualmente, deve essere definita con instance uniform ... anziché uniform ... nel codice dello shader.
Nota: name è sensibile alle maiuscole e alle minuscole e deve corrispondere esattamente al nome dell'uniforme in codice (non al nome formattato nell'ispettore).
void set_notify_local_transform(enable: bool) 🔗
Se true, il nodo riceverà NOTIFICATION_LOCAL_TRANSFORM_CHANGED quando la sua trasformazione locale cambia.
Nota: Molti elementi canvas come Bone2D o CollisionShape2D abilitano questo automaticamente per funzionare correttamente.
void set_notify_transform(enable: bool) 🔗
If true, the node will receive NOTIFICATION_TRANSFORM_CHANGED whenever its global transform changes.
Note: Many canvas items such as Camera2D or Light2D automatically enable this in order to function correctly.
void set_visibility_layer_bit(layer: int, enabled: bool) 🔗
Imposta/cancella singoli bit sugli strati di visibilità per il rendering. Ciò semplifica la modifica degli strati di visibilità di questo CanvasItem.
void show() 🔗
Mostra il CanvasItem se è attualmente nascosto. Ciò equivale a impostare visible su true.
Note: Per i controlli che ereditano Popup, il modo corretto per renderli visibili è chiamare una delle molteplici funzioni popup*().