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
Clase base abstracta para todo en el espacio 2D.
Descripción
Clase base abstracta para todo en el espacio 2D. Los elementos de Canvas se disponen en un árbol; los elementos secundarios heredan y extienden la transformación de su elemento primario. CanvasItem se extiende mediante Control para los nodos relacionados con la interfaz gráfica de usuario y mediante Node2D para los objetos de juego 2D.
Cualquier CanvasItem puede dibujar. Para ello, el motor llama a queue_redraw() y, en tiempo de inactividad, se recibe NOTIFICATION_DRAW para solicitar un redibujado. Gracias a esto, no es necesario redibujar los elementos del canvas en cada fotograma, lo que mejora significativamente el rendimiento. Se proporcionan varias funciones para dibujar en CanvasItem (consulta las funciones draw_*). Sin embargo, solo se pueden usar dentro de _draw(), su Object._notification() correspondiente o métodos conectados a la señal draw.
Los elementos de Canvas se dibujan en orden de árbol en su capa de canvas. De forma predeterminada, los elementos secundarios se ubican encima de los primarios, por lo que se dibujará un elemento raíz CanvasItem detrás de cada elemento. Este comportamiento se puede modificar individualmente.
Un elemento CanvasItem se puede ocultar, lo que también ocultará a sus elementos secundarios. Ajustando otras propiedades de un elemento CanvasItem, también se puede modular su color (mediante modulate o self_modulate), cambiar su índice Z, modo de fusión, etc.
Ten en cuenta que propiedades como la transformación, la modulación y la visibilidad solo se propagan a los nodos hijos directos de CanvasItem. Si hay un nodo que no sea CanvasItem entre ellos, como Node o AnimationPlayer, los nodos CanvasItem inferiores tendrán una posición y una cadena modulate independientes. Véase también top_level.
Tutoriales
Propiedades
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Métodos
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() |
Señales
draw() 🔗
Se emite cuando el CanvasItem debe volver a dibujarse, después de la notificación NOTIFICATION_DRAW relacionada y antes de que se llame a _draw().
Nota: Las conexiones diferidas no permiten dibujar a través de los métodos draw_*.
Se emite cuando este nodo se oculta, es decir, ya no es visible en el árbol (ver is_visible_in_tree()).
item_rect_changed() 🔗
Se emite cuando los límites del CanvasItem (posición o tamaño) cambian, o cuando se realiza una acción que haya afectado dichos límites (por ejemplo, al cambiar Sprite2D.texture).
visibility_changed() 🔗
Se emite cuando cambia la visibilidad del CanvasItem, ya sea porque su propia propiedad visible cambió o porque su visibilidad en el árbol cambió (consulta is_visible_in_tree()).
Esta señal se emite después de la notificación relacionada NOTIFICATION_VISIBILITY_CHANGED.
Enumeraciones
enum TextureFilter: 🔗
TextureFilter TEXTURE_FILTER_PARENT_NODE = 0
El CanvasItem heredará el filtro de su padre.
TextureFilter TEXTURE_FILTER_NEAREST = 1
El filtro de textura lee solo del píxel más cercano. Esto hace que la textura se vea pixelada de cerca y granulada de lejos (debido a que los mipmaps no se muestrean).
TextureFilter TEXTURE_FILTER_LINEAR = 2
El filtro de textura mezcla entre los 4 píxeles más cercanos. Esto hace que la textura se vea suave de cerca y granulada de lejos (debido a que los mipmaps no se muestrean).
TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3
El filtro de textura lee del píxel más cercano y mezcla entre los 2 mipmaps más cercanos (o usa el mipmap más cercano si ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter es true). Esto hace que la textura se vea pixelada de cerca y suave de lejos.
Úsalo para texturas que no son de arte de píxeles y que pueden verse a baja escala (por ejemplo, debido al zoom de Camera2D o al escalado de sprites), ya que los mipmaps son importantes para suavizar los píxeles que son más pequeños que los píxeles en pantalla.
TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4
El filtro de textura mezcla entre los 4 píxeles más cercanos y entre los 2 mipmaps más cercanos (o usa el mipmap más cercano si ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter es true). Esto hace que la textura se vea suave de cerca y suave de lejos.
Úsalo para texturas que no son de arte de píxeles y que pueden verse a baja escala (por ejemplo, debido al zoom de Camera2D o al escalado de sprites), ya que los mipmaps son importantes para suavizar los píxeles que son más pequeños que los píxeles en pantalla.
TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5
El filtro de textura lee del píxel más cercano y mezcla entre 2 mipmaps (o usa el mipmap más cercano si ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter es true) basándose en el ángulo entre la superficie y la vista de la cámara. Esto hace que la textura se vea pixelada de cerca y suave de lejos. El filtrado anisotrópico mejora la calidad de la textura en superficies que están casi en línea con la cámara, pero es ligeramente más lento. El nivel de filtrado anisotrópico se puede cambiar ajustando ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level.
Nota: Este filtro de textura rara vez es útil en proyectos 2D. TEXTURE_FILTER_NEAREST_WITH_MIPMAPS suele ser más apropiado en este caso.
TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6
El filtro de textura mezcla entre los 4 píxeles más cercanos y mezcla entre 2 mipmaps (o usa el mipmap más cercano si ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter es true) basándose en el ángulo entre la superficie y la vista de la cámara. Esto hace que la textura se vea suave de cerca y suave de lejos. El filtrado anisotrópico mejora la calidad de la textura en superficies que están casi en línea con la cámara, pero es ligeramente más lento. El nivel de filtrado anisotrópico se puede cambiar ajustando ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level.
Nota: Este filtro de textura rara vez es útil en proyectos 2D. TEXTURE_FILTER_LINEAR_WITH_MIPMAPS suele ser más apropiado en este caso.
TextureFilter TEXTURE_FILTER_MAX = 7
Representa el tamaño del enum 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 textura no se repite. Muestrear la textura fuera de sus límites resultará en el "estiramiento" de los píxeles de los bordes. Puedes evitar esto asegurándote de que haya un borde de 1 píxel completamente transparente a cada lado de la textura.
TextureRepeat TEXTURE_REPEAT_ENABLED = 2
La textura se repite al exceder el tamaño de la textura.
TextureRepeat TEXTURE_REPEAT_MIRROR = 3
La textura se repite al exceder el tamaño de la textura en un "modo de mosaico 2×2". Las texturas repetidas en posiciones pares se reflejan.
TextureRepeat TEXTURE_REPEAT_MAX = 4
Representa el tamaño del enum TextureRepeat.
enum ClipChildrenMode: 🔗
ClipChildrenMode CLIP_CHILDREN_DISABLED = 0
Los hijos se dibujan sobre este nodo y no se recortan.
ClipChildrenMode CLIP_CHILDREN_ONLY = 1
Este nodo se usa como máscara y no se dibuja. La máscara se basa en el canal alfa de este nodo: los píxeles opacos se mantienen, los píxeles transparentes se descartan y los píxeles semitransparentes se mezclan según su opacidad. Los hijos se recortan al área dibujada de este nodo.
ClipChildrenMode CLIP_CHILDREN_AND_DRAW = 2
Este nodo se usa como máscara y también se dibuja. La máscara se basa en el canal alfa de este nodo: los píxeles opacos se mantienen, los píxeles transparentes se descartan y los píxeles semitransparentes se mezclan según su opacidad. Los hijos se recortan al área dibujada del padre.
ClipChildrenMode CLIP_CHILDREN_MAX = 3
Representa el tamaño del enum ClipChildrenMode.
enum OversamplingWithScale: 🔗
OversamplingWithScale OVERSAMPLING_WITH_SCALE_PARENT_NODE = 0
The CanvasItem will inherit the oversampling mode from its parent.
OversamplingWithScale OVERSAMPLING_WITH_SCALE_DISABLED = 1
The oversampling is not affected by CanvasItem scale, and is equal to the Viewport oversampling.
OversamplingWithScale OVERSAMPLING_WITH_SCALE_ENABLED = 2
The oversampling is a product of CanvasItem scale and Viewport oversampling.
OversamplingWithScale OVERSAMPLING_WITH_SCALE_MAX = 3
Represents the size of the OversamplingWithScale enum.
Constantes
NOTIFICATION_TRANSFORM_CHANGED = 2000 🔗
Notificación recibida cuando cambia el transform global de este Node, si is_transform_notification_enabled() está configurado en true. Consulte también set_notify_transform() y get_transform().
Nota: Muchos canvas items como Camera2D o CollisionObject2D habilitan esto automáticamente para function correctamente.
NOTIFICATION_LOCAL_TRANSFORM_CHANGED = 35 🔗
Notificación recibida cuando cambia el transform de este Node, si is_local_transform_notification_enabled() está configurado en true. Esto no se recibe cuando cambia el transform de un Node2D padre. Consulte también set_notify_local_transform().
Nota: Muchos canvas items como Camera2D o CollisionShape2D habilitan esto automáticamente para function correctamente.
NOTIFICATION_DRAW = 30 🔗
Se solicita que CanvasItem dibuje (véase _draw()).
NOTIFICATION_VISIBILITY_CHANGED = 31 🔗
Notificación recibida cuando cambia la visibilidad de este nodo (consulta visible y is_visible_in_tree()).
Esta notificación se recibe antes de la señal relacionada visibility_changed.
NOTIFICATION_ENTER_CANVAS = 32 🔗
El CanvasItem ha entrado en el canvas.
NOTIFICATION_EXIT_CANVAS = 33 🔗
El CanvasItem ha salido del canvas.
Esta notificación se envía en orden inverso.
NOTIFICATION_WORLD_2D_CHANGED = 36 🔗
Notificación recibida cuando este CanvasItem se registra en un nuevo World2D (véase get_world_2d()).
Descripciones de Propiedades
ClipChildrenMode clip_children = 0 🔗
void set_clip_children_mode(value: ClipChildrenMode)
ClipChildrenMode get_clip_children_mode()
El modo en que este nodo recorta a sus hijos, actuando como una máscara.
Nota: Los nodos de recorte no se pueden anidar ni colocar dentro de un CanvasGroup. Si un ancestro de este nodo recorta a sus hijos o es un CanvasGroup, entonces el modo de recorte de este nodo debe establecerse en CLIP_CHILDREN_DISABLED para evitar un comportamiento inesperado.
Las capas de renderizado en las que este CanvasItem responde a los nodos Light2D.
El material aplicado a este CanvasItem.
Color modulate = Color(1, 1, 1, 1) 🔗
El color aplicado a este CanvasItem. Esta propiedad afecta a los CanvasItem hijos, a diferencia de self_modulate que solo afecta al nodo en sí.
OversamplingWithScale oversampling_with_scale = 0 🔗
void set_oversampling_with_scale(value: OversamplingWithScale)
OversamplingWithScale get_oversampling_with_scale()
If enabled, oversampling for this CanvasItem is automatically adjusted with scale.
Color self_modulate = Color(1, 1, 1, 1) 🔗
El color aplicado a este CanvasItem. Esta propiedad no afecta a los CanvasItem hijos, a diferencia de modulate que afecta tanto al nodo en sí como a sus hijos.
Nota: Los hijos internos tampoco se ven afectados por esta propiedad (véase el parámetro include_internal en Node.add_child()). Para los nodos incorporados esto incluye los deslizadores en ColorPicker, y la barra de pestañas en TabContainer.
bool show_behind_parent = false 🔗
Si es true, este nodo se dibuja detrás de su padre.
TextureFilter texture_filter = 0 🔗
void set_texture_filter(value: TextureFilter)
TextureFilter get_texture_filter()
El modo de filtrado utilizado para renderizar las texturas de este CanvasItem.
TextureRepeat texture_repeat = 0 🔗
void set_texture_repeat(value: TextureRepeat)
TextureRepeat get_texture_repeat()
El modo de repetición utilizado para renderizar la(s) textura(s) de este CanvasItem. Afecta a lo que ocurre cuando la textura es muestreada fuera de sus límites, por ejemplo al establecer un Sprite2D.region_rect que sea más grande que la textura o al asignar puntos UV de Polygon2D fuera de la textura.
Nota: TextureRect no se ve afectado por texture_repeat, ya que utiliza su propia implementación de repetición de textura.
Si es true, este CanvasItem no heredará su transformación de los CanvasItem padres. Su orden de dibujo también cambiará para dibujarse por encima de otros CanvasItems que no tienen top_level configurado en true. El CanvasItem efectivamente actuará como si estuviera colocado como hijo de un Node.
bool use_parent_material = false 🔗
Si es true, el material del elemento CanvasItem padre se utiliza como material de este nodo.
La capa de renderizado en la que este CanvasItem es dibujado por nodos Viewport. Un Viewport dibujará un CanvasItem si comparte una capa con su máscara de recorte del lienzo y todos sus padres comparten también esa capa.
Nota: Un CanvasItem no hereda las capas de visibilidad de sus padres. Esto significa que si un CanvasItem padre no tiene todas las mismas capas que su hijo, el hijo puede no ser visible incluso si tanto el padre como el hijo tienen visible configurado en true. Por ejemplo, si un padre tiene la capa 1 y un hijo tiene la capa 2, el hijo no será visible en un Viewport con la máscara de recorte del lienzo configurada en la capa 1 o 2 (ver Viewport.canvas_cull_mask). Para asegurar que tanto el padre como el hijo sean visibles, el padre debe tener ambas capas 1 y 2, o el hijo debe tener top_level configurado en true.
If true, this CanvasItem may be drawn. Whether this CanvasItem is actually drawn depends on the visibility of all of its CanvasItem ancestors. In other words: this CanvasItem will be drawn when is_visible_in_tree() returns true and all CanvasItem ancestors share at least one visibility_layer with this CanvasItem.
Note: For controls that inherit Popup, the correct way to make them visible is to call one of the multiple popup*() functions instead.
Si es true, este y los nodos CanvasItem hijos con una posición Y mayor se renderizan por delante de los nodos con una posición Y menor. Si false, este y los nodos CanvasItem hijos se renderizan normalmente en orden del árbol de escena.
Con el Y-sort activado en un nodo padre ('A') pero desactivado en un nodo hijo ('B'), el nodo hijo ('B') se ordena pero sus propios hijos ('C1', 'C2', etc.) se renderizan juntos en la misma posición Y que el nodo hijo ('B'). Esto permite organizar el orden de renderizado de una escena sin modificar el árbol de escenas.
Los nodos solo se ordenan entre sí si están en el mismo z_index.
Si es true, el índice Z final de este nodo es relativo al índice Z de su padre.
Por ejemplo, si z_index es 2 y el índice Z final de su padre es 3, entonces el índice Z final de este nodo será 5 (2 + 3).
El orden en el que se dibuja este nodo. Un nodo con un índice Z más alto se mostrará delante de los demás. Debe estar entre RenderingServer.CANVAS_ITEM_Z_MIN y RenderingServer.CANVAS_ITEM_Z_MAX (inclusive).
Nota: El índice Z no afecta el orden en el que se procesan los nodos CanvasItem ni la forma en que se manejan los eventos de entrada. Esto es especialmente importante tenerlo en cuenta para los nodos Control.
Descripciones de Métodos
void _draw() virtual 🔗
Called when CanvasItem has been requested to redraw (after queue_redraw() is called, either manually or by the engine).
Corresponds to the NOTIFICATION_DRAW notification in Object._notification().
void draw_animation_slice(animation_length: float, slice_begin: float, slice_end: float, offset: float = 0.0) 🔗
Los comandos de dibujo subsiguientes se ignorarán a menos que se encuentren dentro del segmento de animación especificado. Esta es una forma más rápida de implementar animaciones que se repiten en segundo plano en lugar de redibujar constantemente.
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) 🔗
Dibuja un arco sin relleno entre los ángulos dados con un color y width uniformes y antialiasing opcional (soportado solo para width positivo). Cuanto mayor sea el valor de point_count, más suave será la curva. center se define en el espacio local. Para arcos elípticos, consulta draw_ellipse_arc(). Véase también draw_circle().
Si width es negativo, se ignorará y el arco se dibujará usando RenderingServer.PRIMITIVE_LINE_STRIP. Esto significa que cuando el CanvasItem se escale, el arco permanecerá delgado. Si no se desea este comportamiento, pasa un width positivo como 1.0.
El arco se dibuja desde start_angle hacia el valor de end_angle, por lo tanto en sentido horario si start_angle < end_angle y en sentido antihorario en caso contrario. Pasar los mismos ángulos pero en orden inverso producirá el mismo arco. Si la diferencia absoluta entre start_angle y end_angle es mayor que @GDScript.TAU radianes, entonces se dibuja un arco de círculo completo (es decir, el arco no se superpondrá a sí mismo).
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 🔗
Draws a string first character using a custom font. If oversampling is greater than zero, it is used as font oversampling factor, otherwise viewport oversampling settings are used. pos is defined in local space.
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 🔗
Draws a string first character outline using a custom font. If oversampling is greater than zero, it is used as font oversampling factor, otherwise viewport oversampling settings are used. pos is defined in local space.
void draw_circle(position: Vector2, radius: float, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja un círculo, con position definido en el espacio local. Véase también draw_ellipse(), draw_arc(), draw_polyline() y draw_polygon().
Si filled es true, el círculo se rellenará con el color especificado. Si filled es false, el círculo se dibujará como un trazo con el color y width especificados.
Si width es negativo, se dibujarán primitivas de dos puntos en lugar de cuatro. Esto significa que cuando el CanvasItem se escale, las líneas permanecerán delgadas. Si no se desea este comportamiento, pasa un width positivo como 1.0.
Si antialiased es true, se adjuntarán "plumas" semitransparentes al límite, haciendo que los contornos sean suaves.
Nota: width solo es efectivo si filled es false.
void draw_colored_polygon(points: PackedVector2Array, color: Color, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null) 🔗
Dibuja un polígono coloreado de cualquier número de puntos, convexo o cóncavo. Los puntos en el array points se definen en el espacio local. A diferencia de draw_polygon(), se debe especificar un único color para todo el polígono.
Nota: Si redibujas frecuentemente el mismo polígono con un gran número de vértices, considera precalcular la triangulación con Geometry2D.triangulate_polygon() y usar draw_mesh(), draw_multimesh() o RenderingServer.canvas_item_add_triangle_array().
Nota: Las cajas de estilo, texturas y mallas almacenadas solo dentro de variables locales no deben usarse con este método en GDScript, porque la operación de dibujo no comienza inmediatamente una vez que se llama a este método. En GDScript, cuando la función con las variables locales termina, las variables locales se destruyen antes de que tenga lugar el renderizado.
void draw_dashed_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, dash: float = 2.0, aligned: bool = true, antialiased: bool = false) 🔗
Dibuja una línea discontinua desde un punto 2D hasta otro, con un color y ancho dados. Las posiciones from y to se definen en el espacio local. Véase también draw_line(), draw_multiline() y draw_polyline().
Si width es negativo, se dibujarán primitivas de dos puntos en lugar de cuatro. Esto significa que cuando el CanvasItem se escale, las partes de la línea permanecerán delgadas. Si no se desea este comportamiento, pasa un width positivo como 1.0.
dash es la longitud de cada guion en píxeles, siendo la brecha entre cada guion de la misma longitud. Si aligned es true, la longitud del primer y último guion puede acortarse o alargarse para permitir que la línea comience y termine en los puntos precisos definidos por from y to. Ambos extremos son siempre simétricos cuando aligned es true. Si aligned es false, todos los guiones tendrán la misma longitud, pero la línea puede parecer incompleta al final debido a que la longitud del guion no divide uniformemente la longitud de la línea. Solo se dibujan guiones completos cuando aligned es false.
Si antialiased es true, se adjuntarán "plumas" semitransparentes al límite, haciendo que los contornos sean suaves.
Nota: antialiased solo es efectivo si width es mayor que 0.0.
void draw_ellipse(position: Vector2, major: float, minor: float, color: Color, filled: bool = true, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja una elipse con semieje mayor major y semieje menor minor. Véase también draw_circle(), draw_ellipse_arc(), draw_polyline() y draw_polygon().
Si filled es true, la elipse se rellenará con el color especificado. Si filled es false, la elipse se dibujará como un trazo con el color y width especificados.
Si width es negativo, se dibujarán primitivas de dos puntos en lugar de cuatro. Esto significa que cuando el CanvasItem se escale, las líneas permanecerán delgadas. Si no se desea este comportamiento, pasa un width positivo como 1.0.
Si antialiased es true, se adjuntarán "plumas" semitransparentes al límite, haciendo que los contornos sean suaves.
Nota: width solo es efectivo si filled es 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) 🔗
Dibuja un arco elíptico sin relleno entre los ángulos dados con un color y width uniformes y antialiasing opcional (soportado solo para width positivo). Cuanto mayor sea el valor de point_count, más suave será la curva. Para arcos circulares, consulta draw_arc(). Véase también draw_ellipse().
Si width es negativo, se ignorará y el arco se dibujará usando RenderingServer.PRIMITIVE_LINE_STRIP. Esto significa que cuando el CanvasItem se escale, el arco permanecerá delgado. Si no se desea este comportamiento, pasa un width positivo como 1.0.
El arco se dibuja desde start_angle hacia el valor de end_angle, por lo tanto en sentido horario si start_angle < end_angle y en sentido antihorario en caso contrario. Pasar los mismos ángulos pero en orden inverso producirá el mismo arco. Si la diferencia absoluta entre start_angle y end_angle es mayor que @GDScript.TAU radianes, entonces se dibuja una elipse completa (es decir, el arco no se superpondrá a sí mismo).
void draw_end_animation() 🔗
Después de enviar todas las secciones de animación mediante draw_animation_slice(), esta función se puede usar para revertir el dibujo a su estado predeterminado (todos los comandos de dibujo posteriores serán visibles). Si no le interesa este caso de uso en particular, no es necesario usar esta función después de enviar las secciones.
void draw_lcd_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1)) 🔗
Dibuja una región rectangular texturizada de la textura de la fuente con suavizado de subpíxeles LCD en una posición determinada, opcionalmente modulada por un color. El parámetro rect se define en el espacio local.
La textura se dibuja mediante la siguiente operación de fusión; se ignora el modo de fusión del CanvasItemMaterial:
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);
Nota: Las cajas de estilo, texturas y mallas almacenadas únicamente en variables locales no deben usarse con este método en GDScript, ya que la operación de dibujo no comienza inmediatamente al llamar a este método. En GDScript, cuando finaliza la función con las variables locales, estas se destruyen antes de que se produzca el renderizado.
void draw_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja una línea desde un punto 2D hasta otro, con un color y ancho dados. Puede ser opcionalmente antialiasada. Las posiciones from y to se definen en el espacio local. Véase también draw_dashed_line(), draw_multiline() y draw_polyline().
Si width es negativo, se dibujará una primitiva de dos puntos en lugar de una de cuatro. Esto significa que cuando el CanvasItem se escale, la línea permanecerá delgada. Si no se desea este comportamiento, pasa un width positivo como 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)) 🔗
Dibuja una Mesh en 2D, utilizando la textura proporcionada. Véase MeshInstance2D para obtener documentación relacionada. El transform se define en el espacio local.
Nota: Las cajas de estilo, texturas y mallas almacenadas únicamente en variables locales no deben utilizarse con este método en GDScript, ya que la operación de dibujo no comienza inmediatamente después de llamar a este método. En GDScript, cuando finaliza la función con las variables locales, estas se destruyen antes de que se produzca el renderizado.
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) 🔗
Dibuja una región rectangular texturizada de la textura de campo de distancia con signo multicanal (MSDF) en una posición dada, opcionalmente modulada por un color. El rect está definido en el espacio local. Véase FontFile.multichannel_signed_distance_field para obtener más información y advertencias sobre el renderizado de fuentes MSDF.
Si outline es positivo, cada valor del canal alfa del píxel en la región se establece al valor máximo de la distancia real en el radio de outline.
El valor de pixel_range debe ser el mismo que se utilizó durante la generación de la textura del campo de distancia.
Nota: Los Styleboxes, texturas y mallas almacenados solo dentro de variables locales no deben usarse con este método en GDScript, porque la operación de dibujo no comienza inmediatamente una vez que se llama a este método. En GDScript, cuando la función con las variables locales termina, las variables locales se destruyen antes de que se produzca el renderizado.
void draw_multiline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja múltiples líneas desconectadas con un width y color uniformes. Cada línea se define por dos puntos consecutivos del array points en el espacio local, es decir, el segmento i-ésimo consiste en los puntos finales points[2 * i] y points[2 * i + 1]. Al dibujar grandes cantidades de líneas, esto es más rápido que usar llamadas individuales a draw_line(). Para dibujar líneas interconectadas, usa draw_polyline() en su lugar.
Si width es negativo, se dibujarán primitivas de dos puntos en lugar de cuatro. Esto significa que cuando el CanvasItem se escale, las líneas permanecerán delgadas. Si no se desea este comportamiento, pasa un width positivo como 1.0.
Nota: antialiased solo es efectivo si width es mayor que 0.0.
void draw_multiline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja múltiples líneas desconectadas con un width uniforme y coloración segmento por segmento. Cada segmento se define por dos puntos consecutivos del array points en el espacio local y un color correspondiente del array colors, es decir, el segmento i-ésimo consiste en los puntos finales points[2 * i] y points[2 * i + 1] y tiene el color colors[i]. Al dibujar grandes cantidades de líneas, esto es más rápido que usar llamadas individuales a draw_line(). Para dibujar líneas interconectadas, usa draw_polyline_colors() en su lugar.
Si width es negativo, se dibujarán primitivas de dos puntos en lugar de cuatro. Esto significa que cuando el CanvasItem se escale, las líneas permanecerán delgadas. Si no se desea este comportamiento, pasa un width positivo como 1.0.
Nota: antialiased solo es efectivo si width es mayor que 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 🔗
Breaks text into lines and draws it using the specified font at the pos in local space (top-left corner). 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.
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 🔗
Breaks text to the lines and draws text outline using the specified font at the pos in local space (top-left corner). 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.
void draw_multimesh(multimesh: MultiMesh, texture: Texture2D) 🔗
Dibuja una MultiMesh en 2D con la textura proporcionada. Véase MultiMeshInstance2D para documentación relacionada.
Nota: Las cajas de estilo, texturas y mallas almacenadas solo en variables locales no deben usarse con este método en GDScript, ya que la operación de dibujo no comienza inmediatamente después de llamar a este método. En GDScript, cuando finaliza la funcion con las variables locales, estas se destruyen antes de que se produzca el renderizado.
void draw_polygon(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null) 🔗
Dibuja un polígono sólido de cualquier número de puntos, convexo o cóncavo. A diferencia de draw_colored_polygon(), el color de cada punto puede cambiarse individualmente. El array points se define en el espacio local. Véase también draw_polyline() y draw_polyline_colors(). Si necesitas más flexibilidad (como poder usar huesos), usa RenderingServer.canvas_item_add_triangle_array() en su lugar.
Nota: Si redibujas frecuentemente el mismo polígono con un gran número de vértices, considera precalcular la triangulación con Geometry2D.triangulate_polygon() y usar draw_mesh(), draw_multimesh() o RenderingServer.canvas_item_add_triangle_array().
Nota: Las cajas de estilo, texturas y mallas almacenadas solo dentro de variables locales no deben usarse con este método en GDScript, porque la operación de dibujo no comienza inmediatamente una vez que se llama a este método. En GDScript, cuando la función con las variables locales termina, las variables locales se destruyen antes de que tenga lugar el renderizado.
void draw_polyline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja segmentos de línea interconectados con un color y width uniformes y antialiasing opcional (soportado solo para width positivo). El array points se define en el espacio local. Al dibujar grandes cantidades de líneas, esto es más rápido que usar llamadas individuales a draw_line(). Para dibujar líneas desconectadas, usa draw_multiline() en su lugar. Véase también draw_polygon().
Si width es negativo, se ignorará y la polilínea se dibujará usando RenderingServer.PRIMITIVE_LINE_STRIP. Esto significa que cuando el CanvasItem se escale, la polilínea permanecerá delgada. Si no se desea este comportamiento, pasa un width positivo como 1.0.
void draw_polyline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) 🔗
Dibuja segmentos de línea interconectados con un width uniforme, coloración punto por punto y antialiasing opcional (soportado solo para width positivo). Los colores asignados a los puntos de la línea coinciden por índice entre points y colors, es decir, cada segmento de línea se rellena con un degradado entre los colores de los puntos finales. El array points se define en el espacio local. Al dibujar grandes cantidades de líneas, esto es más rápido que usar llamadas individuales a draw_line(). Para dibujar líneas desconectadas, usa draw_multiline_colors() en su lugar. Véase también draw_polygon().
Si width es negativo, se ignorará y la polilínea se dibujará usando RenderingServer.PRIMITIVE_LINE_STRIP. Esto significa que cuando el CanvasItem se escale, la polilínea permanecerá delgada. Si no se desea este comportamiento, pasa un width positivo como 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) 🔗
Dibuja un rectángulo. Si filled es true, el rectángulo se rellenará con el color especificado. Si filled es false, el rectángulo se dibujará como un trazo con el color y width especificados. El rect se especifica en el espacio local. Véase también draw_texture_rect().
Si width es negativo, se dibujarán primitivas de dos puntos en lugar de cuatro. Esto significa que cuando el CanvasItem se escale, las líneas permanecerán delgadas. Si no se desea este comportamiento, pasa un width positivo como 1.0.
Si antialiased es true, se adjuntarán "plumas" semitransparentes al límite, haciendo que los contornos sean suaves.
Nota: width solo es efectivo si filled es false.
Nota: Los rectángulos sin relleno dibujados con un width negativo pueden no mostrarse perfectamente. Por ejemplo, las esquinas pueden faltar o ser más brillantes debido a la superposición de líneas (para un color translúcido).
void draw_set_transform(position: Vector2, rotation: float = 0.0, scale: Vector2 = Vector2(1, 1)) 🔗
Establece una transformación local personalizada para dibujar mediante componentes. Cualquier cosa dibujada después será transformada por esto.
Nota: FontFile.oversampling no tiene en cuenta scale. Esto significa que escalar hacia arriba o hacia abajo hará que las fuentes de mapa de bits y las fuentes dinámicas rasterizadas (no MSDF) aparezcan borrosas o pixeladas. Para asegurar que el texto permanezca nítido independientemente de la escala, puedes habilitar el renderizado de fuentes MSDF activando ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (se aplica solo a la fuente predeterminada del proyecto), o habilitando Campo de Distancia Firmado Multicanal en las opciones de importación de una DynamicFont para fuentes personalizadas. En las fuentes del sistema, se puede habilitar SystemFont.multichannel_signed_distance_field en el inspector.
void draw_set_transform_matrix(xform: Transform2D) 🔗
Sets a custom local transform for drawing via matrix. Anything drawn afterwards will be transformed by this.
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 🔗
Dibuja text usando la font especificada en la posición pos en el espacio local (esquina inferior izquierda usando la línea base de la fuente). El texto tendrá su color multiplicado por modulate. Si width es mayor o igual a 0, el texto se recortará si excede el ancho especificado. Si oversampling es mayor que cero, se usa como factor de sobremuestreo de la fuente; de lo contrario, se usan las configuraciones de sobremuestreo del viewport.
Ejemplo: Dibuja "Hello world" usando la fuente predeterminada del proyecto:
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);
Véase también 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 🔗
Draws text outline 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.
void draw_style_box(style_box: StyleBox, rect: Rect2) 🔗
Dibuja un rectángulo con estilo. El rect se define en espacio local.
Nota: Los Stylebox, texturas y mallas almacenados solo dentro de variables locales no deben utilizarse con este método en GDScript, ya que la operación de dibujo no comienza inmediatamente una vez que este método es llamado. En GDScript, cuando la función que contiene las variables locales termina, las variables locales se destruyen antes de que ocurra el renderizado.
void draw_texture(texture: Texture2D, position: Vector2, modulate: Color = Color(1, 1, 1, 1)) 🔗
Dibuja una textura en una posición dada. El position se define en espacio local.
Nota: Los Stylebox, texturas y mallas almacenados solo dentro de variables locales no deben utilizarse con este método en GDScript, ya que la operación de dibujo no comienza inmediatamente una vez que este método es llamado. En GDScript, cuando la función que contiene las variables locales termina, las variables locales se destruyen antes de que ocurra el renderizado.
void draw_texture_rect(texture: Texture2D, rect: Rect2, tile: bool, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false) 🔗
Dibuja un rectángulo texturizado en una posición dada, opcionalmente modulado por un color. El rect se define en el espacio local. Si transpose es true, la textura tendrá sus coordenadas X e Y intercambiadas. Véase también draw_rect() y draw_texture_rect_region().
Nota: Las cajas de estilo, texturas y mallas almacenadas solo dentro de variables locales no deben usarse con este método en GDScript, porque la operación de dibujo no comienza inmediatamente una vez que se llama a este método. En GDScript, cuando la función con las variables locales termina, las variables locales se destruyen antes de que tenga lugar el renderizado.
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) 🔗
Dibuja un rectángulo texturizado desde una región de la textura (especificada por src_rect) en una posición dada en el espacio local, opcionalmente modulado por un color. Si transpose es true, la textura tendrá sus coordenadas X e Y intercambiadas. Véase también draw_texture_rect().
Nota: Las cajas de estilo, texturas y mallas almacenadas solo dentro de variables locales no deben usarse con este método en GDScript, porque la operación de dibujo no comienza inmediatamente una vez que se llama a este método. En GDScript, cuando la función con las variables locales termina, las variables locales se destruyen antes de que tenga lugar el renderizado.
void force_update_transform() 🔗
Forza la actualización de la transformación del nodo. Falla si el nodo no está dentro del árbol. Consulte también get_transform().
Nota: Por razones de rendimiento, los cambios de transformación suelen acumularse y aplicarse una sola vez una vez al final del frame. La actualización se propaga a través de los hijos CanvasItem, además. Por lo tanto, utilice este método solo cuando necesite una transformación actualizada (como durante las operaciones de físicas).
Returns the RID of the World2D canvas where this node is registered to, used by the RenderingServer.
Devuelve el RID interno del item del canvas utilizado por el RenderingServer para este nodo.
CanvasLayer get_canvas_layer_node() const 🔗
Devuelve la CanvasLayer que contiene este nodo, o null si el nodo no está en ninguna CanvasLayer.
Transform2D get_canvas_transform() const 🔗
Devuelve la transformación de este nodo, convertida del sistema de coordenadas de su canvas registrado al sistema de coordenadas de su viewport. Véase también Node.get_viewport().
Vector2 get_global_mouse_position() const 🔗
Devuelve la posición global del cursor del ratón relativa a la CanvasLayer que contiene este nodo.
Nota: Para coordenadas de espacio de pantalla (por ejemplo, al usar un Popup no incrustado), puedes usar DisplayServer.mouse_get_position().
Transform2D get_global_transform() const 🔗
Devuelve la matriz de transformación global de este elemento, es decir, la transformación combinada hasta el nodo CanvasItem más superior. El elemento más superior es un CanvasItem que no tiene padre, tiene un padre que no es un CanvasItem o tiene top_level activado.
Transform2D get_global_transform_with_canvas() const 🔗
Devuelve la transformación del sistema de coordenadas local de este CanvasItem al sistema de coordenadas del Viewport.
Variant get_instance_shader_parameter(name: StringName) const 🔗
Obtiene el valor de un parámetro de shader como se establece en esta instancia.
Vector2 get_local_mouse_position() const 🔗
Devuelve la posición del ratón en este CanvasItem utilizando el sistema de coordenadas local de este CanvasItem.
Transform2D get_screen_transform() const 🔗
Devuelve la transformación de este CanvasItem en coordenadas globales de pantalla (es decir, teniendo en cuenta la posición de la ventana). Principalmente útil para plugins del editor.
Es equivalente a get_global_transform_with_canvas() si la ventana está incrustada (ver Viewport.gui_embed_subwindows).
Transform2D get_transform() const 🔗
Devuelve la matriz de transformación de este CanvasItem.
Rect2 get_viewport_rect() const 🔗
Devuelve los límites del viewport de este nodo como un Rect2. Ver también Node.get_viewport().
Transform2D get_viewport_transform() const 🔗
Devuelve la transformación de este nodo, convertida del sistema de coordenadas de su canvas registrado al sistema de coordenadas de su incrustador de viewport. Ver también Viewport.get_final_transform() y Node.get_viewport().
bool get_visibility_layer_bit(layer: int) const 🔗
Devuelve true si la capa en el índice dado está establecida en visibility_layer.
World2D get_world_2d() const 🔗
Devuelve el World2D al que está registrado este nodo.
Usualmente, esto es lo mismo que el viewport de este nodo (ver Node.get_viewport() y Viewport.find_world_2d()).
void hide() 🔗
Oculta el CanvasItem si está actualmente visible. Esto es equivalente a establecer visible en false.
bool is_local_transform_notification_enabled() const 🔗
Devuelve true si el nodo recibe NOTIFICATION_LOCAL_TRANSFORM_CHANGED cada vez que su transformación local cambia. Esto se activa con set_notify_local_transform().
bool is_transform_notification_enabled() const 🔗
Devuelve true si el nodo recibe NOTIFICATION_TRANSFORM_CHANGED cada vez que su transformación global cambia. Esto se activa con set_notify_transform().
bool is_visible_in_tree() const 🔗
Devuelve true si el nodo está presente en el SceneTree, su propiedad visible es true y todos sus ancestros son también visibles. Si algún ancestro está oculto, este nodo no será visible en el árbol de escenas y, por lo tanto, no se dibujará (véase _draw()).
La visibilidad se comprueba solo en los nodos padre que heredan de CanvasItem, CanvasLayer y Window. Si el padre es de cualquier otro tipo (como Node, AnimationPlayer o Node3D), se asume que es visible.
Nota: Este método no tiene en cuenta visibility_layer, por lo que incluso si este método devuelve true, el nodo podría no ser renderizado.
Vector2 make_canvas_position_local(viewport_point: Vector2) const 🔗
Transforma viewport_point de las coordenadas de la ventana gráfica a las coordenadas locales de este nodo.
Para la operación opuesta, usa get_global_transform_with_canvas().
var viewport_point = get_global_transform_with_canvas() * local_point
InputEvent make_input_local(event: InputEvent) const 🔗
Devuelve una copia del event dado con sus coordenadas convertidas del espacio global al espacio local de este CanvasItem. Si no es posible, devuelve el mismo InputEvent sin cambios.
void move_to_front() 🔗
Mueve este nodo debajo de sus hermanos, lo que generalmente provoca que el nodo se dibuje encima de ellos. No hace nada si este nodo no tiene un padre. Ver también Node.move_child().
void queue_redraw() 🔗
Pone en cola el CanvasItem para que se vuelva a dibujar. Durante el tiempo de inactividad, si el CanvasItem es visible, se envía NOTIFICATION_DRAW y se llama a _draw(). Esto solo ocurre una vez por fotograma, incluso si este método se ha llamado varias veces.
void set_instance_shader_parameter(name: StringName, value: Variant) 🔗
Establece el valor de una variable uniforme de shader solo para esta instancia (uniform por instancia). Véase también ShaderMaterial.set_shader_parameter() para asignar una variable uniforme en todas las instancias que usan el mismo ShaderMaterial.
Nota: Para que una variable uniforme de shader pueda asignarse por instancia, debe definirse con instance uniform ... en lugar de uniform ... en el código del shader.
Nota: name distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre de la variable uniforme en el código (no con el nombre en mayúsculas del inspector).
void set_notify_local_transform(enable: bool) 🔗
Si es true, el nodo recibirá NOTIFICATION_LOCAL_TRANSFORM_CHANGED cada vez que cambie su transformación local.
Nota: Muchos elementos de canvas como Bone2D o CollisionShape2D habilitan esto automáticamente para funcionar correctamente.
void set_notify_transform(enable: bool) 🔗
Si es true, el nodo recibirá NOTIFICATION_TRANSFORM_CHANGED cada vez que cambie su transformación global.
Nota: Muchos elementos de canvas como Camera2D o Light2D habilitan esto automáticamente para funcionar correctamente.
void set_visibility_layer_bit(layer: int, enabled: bool) 🔗
Establece o borra bits individuales en la capa de visibilidad de renderizado. Esto simplifica la edición de la capa de visibilidad de este CanvasItem.
void show() 🔗
Muestra el CanvasItem si está actualmente oculto. Esto es equivalente a establecer visible en true.
Nota: Para los controles que heredan de Popup, la forma correcta de hacerlos visibles es llamar a una de las múltiples funciones popup*() en su lugar.