Files
godot-docs-l10n/classes/ru/class_canvasitem.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

1689 lines
220 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_CanvasItem:
CanvasItem
==========
**Наследует:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
**Наследуется от:** :ref:`Control<class_Control>`, :ref:`Node2D<class_Node2D>`
Абстрактный базовый класс для всего, что находится в двумерном пространстве.
.. rst-class:: classref-introduction-group
Описание
----------------
Абстрактный базовый класс для всего в 2D-пространстве. Элементы холста располагаются в дереве; дочерние элементы наследуют и расширяют преобразование своего родителя. **CanvasItem** расширяется :ref:`Control<class_Control>` для узлов, связанных с GUI, и :ref:`Node2D<class_Node2D>` для 2D-игровых объектов.
Любой **CanvasItem** может рисовать. Для этого движок вызывает :ref:`queue_redraw()<class_CanvasItem_method_queue_redraw>`, затем во время простоя будет получена :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` для запроса перерисовки. Благодаря этому элементы холста не нужно перерисовывать в каждом кадре, что значительно повышает производительность. Предоставляется несколько функций для рисования на **CanvasItem** (см. функции ``draw_*``). Однако их можно использовать только внутри :ref:`_draw()<class_CanvasItem_private_method__draw>`, соответствующего ему :ref:`Object._notification()<class_Object_private_method__notification>` или методов, связанных с сигналом :ref:`draw<class_CanvasItem_signal_draw>`.
Элементы холста рисуются в древовидном порядке на своем слое холста. По умолчанию дочерние элементы находятся поверх своих родителей, поэтому корневой **CanvasItem** будет отрисован позади всего. Это поведение можно изменить для каждого элемента.
\ **CanvasItem** может быть скрыт, что также скроет его дочерние элементы. Изменяя различные другие свойства **CanvasItem**, вы также можете модулировать его цвет (через :ref:`modulate<class_CanvasItem_property_modulate>` или :ref:`self_modulate<class_CanvasItem_property_self_modulate>`), изменять его Z-индекс, режим смешивания и многое другое.
Обратите внимание, что такие свойства, как преобразование, модуляция и видимость, распространяются только на *direct* дочерние узлы **CanvasItem**. Если между ними есть узел, не являющийся **CanvasItem**, например :ref:`Node<class_Node>` или :ref:`AnimationPlayer<class_AnimationPlayer>`, то узлы **CanvasItem** ниже будут иметь независимую позицию и цепочку :ref:`modulate<class_CanvasItem_property_modulate>`. См. также :ref:`top_level<class_CanvasItem_property_top_level>`.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- :doc:`Преобразования области просмотра и холста <../tutorials/2d/2d_transforms>`
- :doc:`Индивидуальный рисунок в 2D <../tutorials/2d/custom_drawing_in_2d>`
- `Демонстрация визуализатора аудиоспектра <https://godotengine.org/asset-library/asset/2762>`__
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` | :ref:`clip_children<class_CanvasItem_property_clip_children>` | ``0`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`light_mask<class_CanvasItem_property_light_mask>` | ``1`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`Material<class_Material>` | :ref:`material<class_CanvasItem_property_material>` | |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`Color<class_Color>` | :ref:`modulate<class_CanvasItem_property_modulate>` | ``Color(1, 1, 1, 1)`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`Color<class_Color>` | :ref:`self_modulate<class_CanvasItem_property_self_modulate>` | ``Color(1, 1, 1, 1)`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`show_behind_parent<class_CanvasItem_property_show_behind_parent>` | ``false`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`TextureFilter<enum_CanvasItem_TextureFilter>` | :ref:`texture_filter<class_CanvasItem_property_texture_filter>` | ``0`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` | :ref:`texture_repeat<class_CanvasItem_property_texture_repeat>` | ``0`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`top_level<class_CanvasItem_property_top_level>` | ``false`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`use_parent_material<class_CanvasItem_property_use_parent_material>` | ``false`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`visibility_layer<class_CanvasItem_property_visibility_layer>` | ``1`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`visible<class_CanvasItem_property_visible>` | ``true`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`y_sort_enabled<class_CanvasItem_property_y_sort_enabled>` | ``false`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`z_as_relative<class_CanvasItem_property_z_as_relative>` | ``true`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`z_index<class_CanvasItem_property_z_index>` | ``0`` |
+-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_draw<class_CanvasItem_private_method__draw>`\ (\ ) |virtual| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_animation_slice<class_CanvasItem_method_draw_animation_slice>`\ (\ animation_length\: :ref:`float<class_float>`, slice_begin\: :ref:`float<class_float>`, slice_end\: :ref:`float<class_float>`, offset\: :ref:`float<class_float>` = 0.0\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_arc<class_CanvasItem_method_draw_arc>`\ (\ center\: :ref:`Vector2<class_Vector2>`, radius\: :ref:`float<class_float>`, start_angle\: :ref:`float<class_float>`, end_angle\: :ref:`float<class_float>`, point_count\: :ref:`int<class_int>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_char<class_CanvasItem_method_draw_char>`\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, char\: :ref:`String<class_String>`, font_size\: :ref:`int<class_int>` = 16, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_char_outline<class_CanvasItem_method_draw_char_outline>`\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, char\: :ref:`String<class_String>`, font_size\: :ref:`int<class_int>` = 16, size\: :ref:`int<class_int>` = -1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_circle<class_CanvasItem_method_draw_circle>`\ (\ position\: :ref:`Vector2<class_Vector2>`, radius\: :ref:`float<class_float>`, color\: :ref:`Color<class_Color>`, filled\: :ref:`bool<class_bool>` = true, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_colored_polygon<class_CanvasItem_method_draw_colored_polygon>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, color\: :ref:`Color<class_Color>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_dashed_line<class_CanvasItem_method_draw_dashed_line>`\ (\ from\: :ref:`Vector2<class_Vector2>`, to\: :ref:`Vector2<class_Vector2>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, dash\: :ref:`float<class_float>` = 2.0, aligned\: :ref:`bool<class_bool>` = true, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_ellipse<class_CanvasItem_method_draw_ellipse>`\ (\ position\: :ref:`Vector2<class_Vector2>`, major\: :ref:`float<class_float>`, minor\: :ref:`float<class_float>`, color\: :ref:`Color<class_Color>`, filled\: :ref:`bool<class_bool>` = true, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_ellipse_arc<class_CanvasItem_method_draw_ellipse_arc>`\ (\ center\: :ref:`Vector2<class_Vector2>`, major\: :ref:`float<class_float>`, minor\: :ref:`float<class_float>`, start_angle\: :ref:`float<class_float>`, end_angle\: :ref:`float<class_float>`, point_count\: :ref:`int<class_int>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_end_animation<class_CanvasItem_method_draw_end_animation>`\ (\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_lcd_texture_rect_region<class_CanvasItem_method_draw_lcd_texture_rect_region>`\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, src_rect\: :ref:`Rect2<class_Rect2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_line<class_CanvasItem_method_draw_line>`\ (\ from\: :ref:`Vector2<class_Vector2>`, to\: :ref:`Vector2<class_Vector2>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_mesh<class_CanvasItem_method_draw_mesh>`\ (\ mesh\: :ref:`Mesh<class_Mesh>`, texture\: :ref:`Texture2D<class_Texture2D>`, transform\: :ref:`Transform2D<class_Transform2D>` = Transform2D(1, 0, 0, 1, 0, 0), modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_msdf_texture_rect_region<class_CanvasItem_method_draw_msdf_texture_rect_region>`\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, src_rect\: :ref:`Rect2<class_Rect2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), outline\: :ref:`float<class_float>` = 0.0, pixel_range\: :ref:`float<class_float>` = 4.0, scale\: :ref:`float<class_float>` = 1.0\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_multiline<class_CanvasItem_method_draw_multiline>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_multiline_colors<class_CanvasItem_method_draw_multiline_colors>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_multiline_string<class_CanvasItem_method_draw_multiline_string>`\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, max_lines\: :ref:`int<class_int>` = -1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_multiline_string_outline<class_CanvasItem_method_draw_multiline_string_outline>`\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, max_lines\: :ref:`int<class_int>` = -1, size\: :ref:`int<class_int>` = 1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_multimesh<class_CanvasItem_method_draw_multimesh>`\ (\ multimesh\: :ref:`MultiMesh<class_MultiMesh>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_polyline_colors<class_CanvasItem_method_draw_polyline_colors>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_primitive<class_CanvasItem_method_draw_primitive>`\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>`, texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_rect<class_CanvasItem_method_draw_rect>`\ (\ rect\: :ref:`Rect2<class_Rect2>`, color\: :ref:`Color<class_Color>`, filled\: :ref:`bool<class_bool>` = true, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_set_transform<class_CanvasItem_method_draw_set_transform>`\ (\ position\: :ref:`Vector2<class_Vector2>`, rotation\: :ref:`float<class_float>` = 0.0, scale\: :ref:`Vector2<class_Vector2>` = Vector2(1, 1)\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_set_transform_matrix<class_CanvasItem_method_draw_set_transform_matrix>`\ (\ xform\: :ref:`Transform2D<class_Transform2D>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_string<class_CanvasItem_method_draw_string>`\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_string_outline<class_CanvasItem_method_draw_string_outline>`\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, size\: :ref:`int<class_int>` = 1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_style_box<class_CanvasItem_method_draw_style_box>`\ (\ style_box\: :ref:`StyleBox<class_StyleBox>`, rect\: :ref:`Rect2<class_Rect2>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_texture<class_CanvasItem_method_draw_texture>`\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, position\: :ref:`Vector2<class_Vector2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_texture_rect<class_CanvasItem_method_draw_texture_rect>`\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, tile\: :ref:`bool<class_bool>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), transpose\: :ref:`bool<class_bool>` = false\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw_texture_rect_region<class_CanvasItem_method_draw_texture_rect_region>`\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, src_rect\: :ref:`Rect2<class_Rect2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), transpose\: :ref:`bool<class_bool>` = false, clip_uv\: :ref:`bool<class_bool>` = true\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`force_update_transform<class_CanvasItem_method_force_update_transform>`\ (\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`get_canvas<class_CanvasItem_method_get_canvas>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`get_canvas_item<class_CanvasItem_method_get_canvas_item>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`CanvasLayer<class_CanvasLayer>` | :ref:`get_canvas_layer_node<class_CanvasItem_method_get_canvas_layer_node>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`get_canvas_transform<class_CanvasItem_method_get_canvas_transform>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`get_global_mouse_position<class_CanvasItem_method_get_global_mouse_position>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform<class_CanvasItem_method_get_global_transform>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform_with_canvas<class_CanvasItem_method_get_global_transform_with_canvas>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`get_instance_shader_parameter<class_CanvasItem_method_get_instance_shader_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`get_local_mouse_position<class_CanvasItem_method_get_local_mouse_position>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`get_screen_transform<class_CanvasItem_method_get_screen_transform>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`get_transform<class_CanvasItem_method_get_transform>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Rect2<class_Rect2>` | :ref:`get_viewport_rect<class_CanvasItem_method_get_viewport_rect>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`get_viewport_transform<class_CanvasItem_method_get_viewport_transform>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_visibility_layer_bit<class_CanvasItem_method_get_visibility_layer_bit>`\ (\ layer\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`World2D<class_World2D>` | :ref:`get_world_2d<class_CanvasItem_method_get_world_2d>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`hide<class_CanvasItem_method_hide>`\ (\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_local_transform_notification_enabled<class_CanvasItem_method_is_local_transform_notification_enabled>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_transform_notification_enabled<class_CanvasItem_method_is_transform_notification_enabled>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_visible_in_tree<class_CanvasItem_method_is_visible_in_tree>`\ (\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`make_canvas_position_local<class_CanvasItem_method_make_canvas_position_local>`\ (\ viewport_point\: :ref:`Vector2<class_Vector2>`\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`InputEvent<class_InputEvent>` | :ref:`make_input_local<class_CanvasItem_method_make_input_local>`\ (\ event\: :ref:`InputEvent<class_InputEvent>`\ ) |const| |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`move_to_front<class_CanvasItem_method_move_to_front>`\ (\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`queue_redraw<class_CanvasItem_method_queue_redraw>`\ (\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_instance_shader_parameter<class_CanvasItem_method_set_instance_shader_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`, value\: :ref:`Variant<class_Variant>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_notify_local_transform<class_CanvasItem_method_set_notify_local_transform>`\ (\ enable\: :ref:`bool<class_bool>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_notify_transform<class_CanvasItem_method_set_notify_transform>`\ (\ enable\: :ref:`bool<class_bool>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_visibility_layer_bit<class_CanvasItem_method_set_visibility_layer_bit>`\ (\ layer\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`show<class_CanvasItem_method_show>`\ (\ ) |
+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Сигналы
--------------
.. _class_CanvasItem_signal_draw:
.. rst-class:: classref-signal
**draw**\ (\ ) :ref:`🔗<class_CanvasItem_signal_draw>`
Вызывается, когда **CanvasItem** должен перерисоваться, *после* соответствующего уведомления :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` и *до* вызова :ref:`_draw()<class_CanvasItem_private_method__draw>`.
\ **Примечание:** Отложенные соединения не позволяют рисовать через методы ``draw_*``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_signal_hidden:
.. rst-class:: classref-signal
**hidden**\ (\ ) :ref:`🔗<class_CanvasItem_signal_hidden>`
Выдается, когда этот узел становится скрытым, т.е. он больше не виден в дереве (см. :ref:`is_visible_in_tree()<class_CanvasItem_method_is_visible_in_tree>`).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_signal_item_rect_changed:
.. rst-class:: classref-signal
**item_rect_changed**\ (\ ) :ref:`🔗<class_CanvasItem_signal_item_rect_changed>`
Вызывается при изменении границ **CanvasItem** (положения или размера) или при выполнении действия, которое могло повлиять на эти границы (например, изменение :ref:`Sprite2D.texture<class_Sprite2D_property_texture>`).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_signal_visibility_changed:
.. rst-class:: classref-signal
**visibility_changed**\ (\ ) :ref:`🔗<class_CanvasItem_signal_visibility_changed>`
Выдается при изменении видимости **CanvasItem**, либо из-за изменения его собственного свойства :ref:`visible<class_CanvasItem_property_visible>`, либо из-за изменения его видимости в дереве (см. :ref:`is_visible_in_tree()<class_CanvasItem_method_is_visible_in_tree>`).
Этот сигнал выдается *после* связанного уведомления :ref:`NOTIFICATION_VISIBILITY_CHANGED<class_CanvasItem_constant_NOTIFICATION_VISIBILITY_CHANGED>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Перечисления
------------------------
.. _enum_CanvasItem_TextureFilter:
.. rst-class:: classref-enumeration
enum **TextureFilter**: :ref:`🔗<enum_CanvasItem_TextureFilter>`
.. _class_CanvasItem_constant_TEXTURE_FILTER_PARENT_NODE:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_PARENT_NODE** = ``0``
**CanvasItem** унаследует фильтр от своего родителя.
.. _class_CanvasItem_constant_TEXTURE_FILTER_NEAREST:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_NEAREST** = ``1``
Фильтр текстуры считывает только ближайший пиксель. Это делает текстуру пикселизированной вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются).
.. _class_CanvasItem_constant_TEXTURE_FILTER_LINEAR:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_LINEAR** = ``2``
Фильтр текстуры смешивает ближайшие 4 пикселя. Это делает текстуру гладкой вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются).
.. _class_CanvasItem_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS** = ``3``
Фильтр текстуры считывает данные с ближайшего пикселя и смешивает данные между двумя ближайшими mip-картами (или использует ближайшую mip-карту, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>` имеет значение ``true``). Это делает текстуру пикселизированной вблизи и гладкой на расстоянии.
Используйте это для текстур, не являющихся пиксельным искусством, которые можно просматривать в низком масштабе (например, из-за масштабирования :ref:`Camera2D<class_Camera2D>` или масштабирования спрайтов), поскольку mip-карты важны для сглаживания пикселей, которые меньше пикселей на экране.
.. _class_CanvasItem_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_LINEAR_WITH_MIPMAPS** = ``4``
Фильтр текстуры смешивает ближайшие 4 пикселя и ближайшие 2 mip-карты (или использует ближайшую mip-карту, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>` имеет значение ``true``). Это делает текстуру гладкой вблизи и гладкой на расстоянии.
Используйте это для текстур непиксельной графики, которые можно просматривать в низком масштабе (например, из-за масштабирования :ref:`Camera2D<class_Camera2D>` или масштабирования спрайтов), поскольку mip-карты важны для сглаживания пикселей, которые меньше пикселей на экране.
.. _class_CanvasItem_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC** = ``5``
Текстурный фильтр считывает данные с ближайшего пикселя и смешивает два mip-текстурных отображения (или использует ближайшее mip-текстурное отображение, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>` имеет значение ``true``) на основе угла между поверхностью и видом камеры. Это делает текстуру пикселизированной вблизи и гладкой на расстоянии. Анизотропная фильтрация улучшает качество текстуры на поверхностях, которые почти совпадают с камерой, но работает немного медленнее. Уровень анизотропной фильтрации можно изменить, настроив :ref:`ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level<class_ProjectSettings_property_rendering/textures/default_filters/anisotropic_filtering_level>`.
\ **Примечание:** Этот текстурный фильтр редко бывает полезен в 2D-проектах. :ref:`TEXTURE_FILTER_NEAREST_WITH_MIPMAPS<class_CanvasItem_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS>` обычно более подходит в этом случае.
.. _class_CanvasItem_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC** = ``6``
Фильтр текстуры смешивает ближайшие 4 пикселя и смешивает 2 mip-карты (или использует ближайшую mip-карту, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter<class_ProjectSettings_property_rendering/textures/default_filters/use_nearest_mipmap_filter>` имеет значение ``true``) на основе угла между поверхностью и видом камеры. Это делает текстуру гладкой вблизи и гладкой на расстоянии. Анизотропная фильтрация улучшает качество текстуры на поверхностях, которые почти совпадают с камерой, но немного медленнее. Уровень анизотропной фильтрации можно изменить, настроив :ref:`ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level<class_ProjectSettings_property_rendering/textures/default_filters/anisotropic_filtering_level>`.
\ **Примечание:** Этот фильтр текстуры редко полезен в 2D-проектах. :ref:`TEXTURE_FILTER_LINEAR_WITH_MIPMAPS<class_CanvasItem_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS>` обычно более подходит в этом случае.
.. _class_CanvasItem_constant_TEXTURE_FILTER_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **TEXTURE_FILTER_MAX** = ``7``
Представляет размер перечисления :ref:`TextureFilter<enum_CanvasItem_TextureFilter>`.
.. rst-class:: classref-item-separator
----
.. _enum_CanvasItem_TextureRepeat:
.. rst-class:: classref-enumeration
enum **TextureRepeat**: :ref:`🔗<enum_CanvasItem_TextureRepeat>`
.. _class_CanvasItem_constant_TEXTURE_REPEAT_PARENT_NODE:
.. rst-class:: classref-enumeration-constant
:ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **TEXTURE_REPEAT_PARENT_NODE** = ``0``
**CanvasItem** унаследует фильтр от своего родителя.
.. _class_CanvasItem_constant_TEXTURE_REPEAT_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **TEXTURE_REPEAT_DISABLED** = ``1``
Текстура не повторяется. Выборка текстуры за пределами её границ приведёт к "растяжению" граничных пикселей. Этого можно избежать, обеспечив полностью прозрачную границу шириной в 1 пиксель с каждой стороны текстуры.
.. _class_CanvasItem_constant_TEXTURE_REPEAT_ENABLED:
.. rst-class:: classref-enumeration-constant
:ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **TEXTURE_REPEAT_ENABLED** = ``2``
Текстура повторяется при превышении размера текстуры.
.. _class_CanvasItem_constant_TEXTURE_REPEAT_MIRROR:
.. rst-class:: classref-enumeration-constant
:ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **TEXTURE_REPEAT_MIRROR** = ``3``
Текстура повторяется при превышении размера текстуры в "плиточном режиме 2×2". Повторяющиеся текстуры в четных позициях зеркально отражаются.
.. _class_CanvasItem_constant_TEXTURE_REPEAT_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **TEXTURE_REPEAT_MAX** = ``4``
Представляет размер перечисления :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>`.
.. rst-class:: classref-item-separator
----
.. _enum_CanvasItem_ClipChildrenMode:
.. rst-class:: classref-enumeration
enum **ClipChildrenMode**: :ref:`🔗<enum_CanvasItem_ClipChildrenMode>`
.. _class_CanvasItem_constant_CLIP_CHILDREN_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **CLIP_CHILDREN_DISABLED** = ``0``
Дочерние элементы рисуются поверх этого узла и не обрезаются.
.. _class_CanvasItem_constant_CLIP_CHILDREN_ONLY:
.. rst-class:: classref-enumeration-constant
:ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **CLIP_CHILDREN_ONLY** = ``1``
Этот узел используется как маска и **не** рисуется. Маска основана на альфа-канале этого узла: непрозрачные пиксели сохраняются, прозрачные пиксели отбрасываются, а полупрозрачные пиксели смешиваются в соответствии с их непрозрачностью. Потомки обрезаются по рисуемой области этого узла.
.. _class_CanvasItem_constant_CLIP_CHILDREN_AND_DRAW:
.. rst-class:: classref-enumeration-constant
:ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **CLIP_CHILDREN_AND_DRAW** = ``2``
Этот узел используется как маска и также рисуется. Маска основана на альфа-канале этого узла: непрозрачные пиксели сохраняются, прозрачные пиксели отбрасываются, а полупрозрачные пиксели смешиваются в соответствии с их непрозрачностью. Дочерние элементы обрезаются по рисуемой области родителя.
.. _class_CanvasItem_constant_CLIP_CHILDREN_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **CLIP_CHILDREN_MAX** = ``3``
Представляет размер перечисления :ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Константы
------------------
.. _class_CanvasItem_constant_NOTIFICATION_TRANSFORM_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_TRANSFORM_CHANGED** = ``2000`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_TRANSFORM_CHANGED>`
Уведомление получено, когда изменяется глобальное преобразование этого узла, если :ref:`is_transform_notification_enabled()<class_CanvasItem_method_is_transform_notification_enabled>` равно ``true``. См. также :ref:`set_notify_transform()<class_CanvasItem_method_set_notify_transform>` и :ref:`get_transform()<class_CanvasItem_method_get_transform>`.
\ **Примечание:** Многие элементы холста, такие как :ref:`Camera2D<class_Camera2D>` или :ref:`CollisionObject2D<class_CollisionObject2D>`, автоматически включают это для корректной работы.
.. _class_CanvasItem_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_LOCAL_TRANSFORM_CHANGED** = ``35`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>`
Уведомление получено, когда изменяется преобразование этого узла, если :ref:`is_local_transform_notification_enabled()<class_CanvasItem_method_is_local_transform_notification_enabled>` равно ``true``. Это не получено, когда изменяется преобразование родительского :ref:`Node2D<class_Node2D>`. См. также :ref:`set_notify_local_transform()<class_CanvasItem_method_set_notify_local_transform>`.
\ **Примечание:** Многие элементы холста, такие как :ref:`Camera2D<class_Camera2D>` или :ref:`CollisionShape2D<class_CollisionShape2D>`, автоматически включают это для корректной работы.
.. _class_CanvasItem_constant_NOTIFICATION_DRAW:
.. rst-class:: classref-constant
**NOTIFICATION_DRAW** = ``30`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_DRAW>`
**CanvasItem** запрашивается для рисования (см. :ref:`_draw()<class_CanvasItem_private_method__draw>`).
.. _class_CanvasItem_constant_NOTIFICATION_VISIBILITY_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_VISIBILITY_CHANGED** = ``31`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_VISIBILITY_CHANGED>`
Уведомление получено, когда видимость этого узла изменяется (см. :ref:`visible<class_CanvasItem_property_visible>` и :ref:`is_visible_in_tree()<class_CanvasItem_method_is_visible_in_tree>`).
Это уведомление получено *до* связанного сигнала :ref:`visibility_changed<class_CanvasItem_signal_visibility_changed>`.
.. _class_CanvasItem_constant_NOTIFICATION_ENTER_CANVAS:
.. rst-class:: classref-constant
**NOTIFICATION_ENTER_CANVAS** = ``32`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_ENTER_CANVAS>`
**CanvasItem** вошел в холст.
.. _class_CanvasItem_constant_NOTIFICATION_EXIT_CANVAS:
.. rst-class:: classref-constant
**NOTIFICATION_EXIT_CANVAS** = ``33`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_EXIT_CANVAS>`
The **CanvasItem** has exited the canvas.
This notification is sent in reversed order.
.. _class_CanvasItem_constant_NOTIFICATION_WORLD_2D_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_WORLD_2D_CHANGED** = ``36`` :ref:`🔗<class_CanvasItem_constant_NOTIFICATION_WORLD_2D_CHANGED>`
Уведомление получено, когда этот **CanvasItem** зарегистрирован в новом :ref:`World2D<class_World2D>` (см. :ref:`get_world_2d()<class_CanvasItem_method_get_world_2d>`).
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_CanvasItem_property_clip_children:
.. rst-class:: classref-property
:ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **clip_children** = ``0`` :ref:`🔗<class_CanvasItem_property_clip_children>`
.. rst-class:: classref-property-setget
- |void| **set_clip_children_mode**\ (\ value\: :ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>`\ )
- :ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **get_clip_children_mode**\ (\ )
Режим, в котором этот узел обрезает свои дочерние элементы, действуя как маска.
\ **Примечание:** Узлы обрезания не могут быть вложенными или помещены в :ref:`CanvasGroup<class_CanvasGroup>`. Если предок этого узла обрезает свои дочерние элементы или является :ref:`CanvasGroup<class_CanvasGroup>`, то режим обрезания этого узла должен быть установлен на :ref:`CLIP_CHILDREN_DISABLED<class_CanvasItem_constant_CLIP_CHILDREN_DISABLED>`, чтобы избежать непредвиденного поведения.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_light_mask:
.. rst-class:: classref-property
:ref:`int<class_int>` **light_mask** = ``1`` :ref:`🔗<class_CanvasItem_property_light_mask>`
.. rst-class:: classref-property-setget
- |void| **set_light_mask**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_light_mask**\ (\ )
Слои рендеринга, в которых этот **CanvasItem** реагирует на узлы :ref:`Light2D<class_Light2D>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_material:
.. rst-class:: classref-property
:ref:`Material<class_Material>` **material** :ref:`🔗<class_CanvasItem_property_material>`
.. rst-class:: classref-property-setget
- |void| **set_material**\ (\ value\: :ref:`Material<class_Material>`\ )
- :ref:`Material<class_Material>` **get_material**\ (\ )
Материал, примененный к этому **CanvasItem**.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_modulate:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **modulate** = ``Color(1, 1, 1, 1)`` :ref:`🔗<class_CanvasItem_property_modulate>`
.. rst-class:: classref-property-setget
- |void| **set_modulate**\ (\ value\: :ref:`Color<class_Color>`\ )
- :ref:`Color<class_Color>` **get_modulate**\ (\ )
Цвет, примененный к этому **CanvasItem**. Это свойство влияет на дочерние **CanvasItem**, в отличие от :ref:`self_modulate<class_CanvasItem_property_self_modulate>`, которое влияет только на сам узел.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_self_modulate:
.. rst-class:: classref-property
:ref:`Color<class_Color>` **self_modulate** = ``Color(1, 1, 1, 1)`` :ref:`🔗<class_CanvasItem_property_self_modulate>`
.. rst-class:: classref-property-setget
- |void| **set_self_modulate**\ (\ value\: :ref:`Color<class_Color>`\ )
- :ref:`Color<class_Color>` **get_self_modulate**\ (\ )
Цвет, примененный к этому **CanvasItem**. Это свойство **не** влияет на дочерние **CanvasItem**, в отличие от :ref:`modulate<class_CanvasItem_property_modulate>`, которое влияет как на сам узел, так и на его дочерние элементы.
\ **Примечание:** Внутренние дочерние элементы также не затрагиваются этим свойством (см. параметр ``include_internal`` в :ref:`Node.add_child()<class_Node_method_add_child>`). Для встроенных узлов это включает ползунки в :ref:`ColorPicker<class_ColorPicker>` и панель вкладок в :ref:`TabContainer<class_TabContainer>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_show_behind_parent:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **show_behind_parent** = ``false`` :ref:`🔗<class_CanvasItem_property_show_behind_parent>`
.. rst-class:: classref-property-setget
- |void| **set_draw_behind_parent**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_draw_behind_parent_enabled**\ (\ )
Если ``true``, этот узел отрисовывается позади своего родителя.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_texture_filter:
.. rst-class:: classref-property
:ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **texture_filter** = ``0`` :ref:`🔗<class_CanvasItem_property_texture_filter>`
.. rst-class:: classref-property-setget
- |void| **set_texture_filter**\ (\ value\: :ref:`TextureFilter<enum_CanvasItem_TextureFilter>`\ )
- :ref:`TextureFilter<enum_CanvasItem_TextureFilter>` **get_texture_filter**\ (\ )
Режим фильтрации, используемый для рендеринга текстур этого **CanvasItem**.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_texture_repeat:
.. rst-class:: classref-property
:ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **texture_repeat** = ``0`` :ref:`🔗<class_CanvasItem_property_texture_repeat>`
.. rst-class:: classref-property-setget
- |void| **set_texture_repeat**\ (\ value\: :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>`\ )
- :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` **get_texture_repeat**\ (\ )
Режим повторения, используемый для отрисовки текстур этого **CanvasItem**. Он влияет на то, что происходит при выборке текстуры за пределами её границ, например, путём установки :ref:`Sprite2D.region_rect<class_Sprite2D_property_region_rect>` большего размера, чем текстура, или назначения UV-точек :ref:`Polygon2D<class_Polygon2D>` за пределами текстуры.
\ **Примечание:** :ref:`TextureRect<class_TextureRect>` не подвержен влиянию :ref:`texture_repeat<class_CanvasItem_property_texture_repeat>`, поскольку использует собственную реализацию повторения текстуры.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_top_level:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **top_level** = ``false`` :ref:`🔗<class_CanvasItem_property_top_level>`
.. rst-class:: classref-property-setget
- |void| **set_as_top_level**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_set_as_top_level**\ (\ )
Если ``true``, этот **CanvasItem** *не* унаследует свое преобразование от родительских **CanvasItem**. Его порядок отрисовки также будет изменен, чтобы он отрисовывался поверх других **CanvasItem**, у которых :ref:`top_level<class_CanvasItem_property_top_level>` не установлен на ``true``. **CanvasItem** будет фактически действовать так, как если бы он был помещен в качестве дочернего элемента пустого :ref:`Node<class_Node>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_use_parent_material:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **use_parent_material** = ``false`` :ref:`🔗<class_CanvasItem_property_use_parent_material>`
.. rst-class:: classref-property-setget
- |void| **set_use_parent_material**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_use_parent_material**\ (\ )
Если ``true``, то в качестве материала этого узла используется :ref:`material<class_CanvasItem_property_material>` родительского **CanvasItem**.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_visibility_layer:
.. rst-class:: classref-property
:ref:`int<class_int>` **visibility_layer** = ``1`` :ref:`🔗<class_CanvasItem_property_visibility_layer>`
.. rst-class:: classref-property-setget
- |void| **set_visibility_layer**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_visibility_layer**\ (\ )
The rendering layer in which this **CanvasItem** is rendered by :ref:`Viewport<class_Viewport>` nodes. A :ref:`Viewport<class_Viewport>` will render a **CanvasItem** if it and all its parents share a layer with the :ref:`Viewport<class_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 :ref:`visible<class_CanvasItem_property_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 :ref:`Viewport<class_Viewport>` with the canvas cull mask set to layer 1 or 2 (see :ref:`Viewport.canvas_cull_mask<class_Viewport_property_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 :ref:`top_level<class_CanvasItem_property_top_level>` set to ``true``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_visible:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **visible** = ``true`` :ref:`🔗<class_CanvasItem_property_visible>`
.. rst-class:: classref-property-setget
- |void| **set_visible**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_visible**\ (\ )
Если ``true``, этот **CanvasItem** может быть нарисован. Будет ли этот **CanvasItem** нарисован на самом деле, зависит от видимости всех его предков **CanvasItem**. Другими словами: этот **CanvasItem** будет нарисован, когда :ref:`is_visible_in_tree()<class_CanvasItem_method_is_visible_in_tree>` вернет ``true`` и все предки **CanvasItem** разделят по крайней мере один :ref:`vision_layer<class_CanvasItem_property_vision_layer>` с этим **CanvasItem**.
\ **Примечание:** Для элементов управления, которые наследуют :ref:`Popup<class_Popup>`, правильный способ сделать их видимыми — вызвать вместо этого одну из нескольких функций ``popup*()``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_y_sort_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **y_sort_enabled** = ``false`` :ref:`🔗<class_CanvasItem_property_y_sort_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_y_sort_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_y_sort_enabled**\ (\ )
Если ``true``, этот и дочерние узлы **CanvasItem** с более высокой позицией Y отображаются перед узлами с более низкой позицией Y. Если ``false``, этот и дочерние узлы **CanvasItem** отображаются нормально в порядке дерева сцены.
При включенной сортировке Y на родительском узле ('A'), но отключенной на дочернем узле ('B'), дочерний узел ('B') сортируется, но его дочерние узлы ('C1', 'C2' и т. д.) отображаются вместе на той же позиции Y, что и дочерний узел ('B'). Это позволяет организовать порядок рендеринга сцены, не изменяя дерево сцены.
Узлы сортируются относительно друг друга, только если они находятся на одном и том же :ref:`z_index<class_CanvasItem_property_z_index>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_z_as_relative:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **z_as_relative** = ``true`` :ref:`🔗<class_CanvasItem_property_z_as_relative>`
.. rst-class:: classref-property-setget
- |void| **set_z_as_relative**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_z_relative**\ (\ )
Если ``true``, конечный Z-индекс этого узла относится к Z-индексу его родителя.
Например, если :ref:`z_index<class_CanvasItem_property_z_index>` равен ``2``, а конечный Z-индекс его родителя равен ``3``, то конечный Z-индекс этого узла будет равен ``5`` (``2 + 3``).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_property_z_index:
.. rst-class:: classref-property
:ref:`int<class_int>` **z_index** = ``0`` :ref:`🔗<class_CanvasItem_property_z_index>`
.. rst-class:: classref-property-setget
- |void| **set_z_index**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_z_index**\ (\ )
Порядок, в котором отрисовывается этот узел. Узел с более высоким индексом Z будет отображаться поверх других. Должен быть между :ref:`RenderingServer.CANVAS_ITEM_Z_MIN<class_RenderingServer_constant_CANVAS_ITEM_Z_MIN>` и :ref:`RenderingServer.CANVAS_ITEM_Z_MAX<class_RenderingServer_constant_CANVAS_ITEM_Z_MAX>` (включительно).
\ **Примечание:** Индекс Z **не** влияет на порядок обработки узлов **CanvasItem** или способ обработки событий ввода. Это особенно важно иметь в виду для узлов :ref:`Control<class_Control>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_CanvasItem_private_method__draw:
.. rst-class:: classref-method
|void| **_draw**\ (\ ) |virtual| :ref:`🔗<class_CanvasItem_private_method__draw>`
Вызывается, когда **CanvasItem** был запрошен для перерисовки (после вызова :ref:`queue_redraw()<class_CanvasItem_method_queue_redraw>`, вручную или движком).
Соответствует уведомлению :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` в :ref:`Object._notification()<class_Object_private_method__notification>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_animation_slice:
.. rst-class:: classref-method
|void| **draw_animation_slice**\ (\ animation_length\: :ref:`float<class_float>`, slice_begin\: :ref:`float<class_float>`, slice_end\: :ref:`float<class_float>`, offset\: :ref:`float<class_float>` = 0.0\ ) :ref:`🔗<class_CanvasItem_method_draw_animation_slice>`
Последующие команды рисования будут игнорироваться, если они не попадают в указанный фрагмент анимации. Это более быстрый способ реализовать анимацию, которая зацикливается на фоне, а не перерисовывается постоянно.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_arc:
.. rst-class:: classref-method
|void| **draw_arc**\ (\ center\: :ref:`Vector2<class_Vector2>`, radius\: :ref:`float<class_float>`, start_angle\: :ref:`float<class_float>`, end_angle\: :ref:`float<class_float>`, point_count\: :ref:`int<class_int>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_arc>`
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 :ref:`draw_ellipse_arc()<class_CanvasItem_method_draw_ellipse_arc>`. See also :ref:`draw_circle()<class_CanvasItem_method_draw_circle>`.
If ``width`` is negative, it will be ignored and the arc will be drawn using :ref:`RenderingServer.PRIMITIVE_LINE_STRIP<class_RenderingServer_constant_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 :ref:`@GDScript.TAU<class_@GDScript_constant_TAU>` radians, then a full circle arc is drawn (i.e. arc will not overlap itself).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_char:
.. rst-class:: classref-method
|void| **draw_char**\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, char\: :ref:`String<class_String>`, font_size\: :ref:`int<class_int>` = 16, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| :ref:`🔗<class_CanvasItem_method_draw_char>`
Рисует первый символ строки, используя пользовательский шрифт. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра. ``pos`` определяется в локальном пространстве.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_char_outline:
.. rst-class:: classref-method
|void| **draw_char_outline**\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, char\: :ref:`String<class_String>`, font_size\: :ref:`int<class_int>` = 16, size\: :ref:`int<class_int>` = -1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| :ref:`🔗<class_CanvasItem_method_draw_char_outline>`
Рисует контур первого символа строки, используя заданный шрифт. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра. ``pos`` определяется в локальном пространстве.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_circle:
.. rst-class:: classref-method
|void| **draw_circle**\ (\ position\: :ref:`Vector2<class_Vector2>`, radius\: :ref:`float<class_float>`, color\: :ref:`Color<class_Color>`, filled\: :ref:`bool<class_bool>` = true, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_circle>`
Draws a circle, with ``position`` defined in local space. See also :ref:`draw_ellipse()<class_CanvasItem_method_draw_ellipse>`, :ref:`draw_arc()<class_CanvasItem_method_draw_arc>`, :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>`, and :ref:`draw_polygon()<class_CanvasItem_method_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``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_colored_polygon:
.. rst-class:: classref-method
|void| **draw_colored_polygon**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, color\: :ref:`Color<class_Color>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) :ref:`🔗<class_CanvasItem_method_draw_colored_polygon>`
Рисует цветной многоугольник из любого количества точек, выпуклых или вогнутых. Точки в массиве ``points`` определены в локальном пространстве. В отличие от :ref:`draw_polygon()<class_CanvasItem_method_draw_polygon>`, для всего многоугольника должен быть указан один цвет.
\ **Примечание:** Если вы часто перерисовываете один и тот же многоугольник с большим количеством вершин, рассмотрите возможность предварительного расчёта триангуляции с помощью :ref:`Geometry2D.triangulate_polygon()<class_Geometry2D_method_triangulate_polygon>` и :ref:`draw_mesh()<class_CanvasItem_method_draw_mesh>`, :ref:`draw_multimesh()<class_CanvasItem_method_draw_multimesh>` или :ref:`RenderingServer.canvas_item_add_triangle_array()<class_RenderingServer_method_canvas_item_add_triangle_array>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_dashed_line:
.. rst-class:: classref-method
|void| **draw_dashed_line**\ (\ from\: :ref:`Vector2<class_Vector2>`, to\: :ref:`Vector2<class_Vector2>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, dash\: :ref:`float<class_float>` = 2.0, aligned\: :ref:`bool<class_bool>` = true, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_dashed_line>`
Рисует пунктирную линию от одной двухмерной точки к другой заданного цвета и ширины. Позиции ``from`` и ``to`` определяются в локальном пространстве. См. также :ref:`draw_line()<class_CanvasItem_method_draw_line>`, :ref:`draw_multiline()<class_CanvasItem_method_draw_multiline>` и :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>`.
Если ``width`` отрицательный, то будет отрисован двухточечный примитив вместо четырёхточечного. Это означает, что при масштабировании CanvasItem части линии останутся тонкими. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
\ ``dash`` — это длина каждого штриха в пикселях, при этом зазор между штрихами будет такой же длины. Если ``aligned`` равен ``true``, длину первого и последнего штрихов можно укоротить или удлинить, чтобы линия начиналась и заканчивалась точно в точках, заданных ``from`` и ``to``. Оба конца всегда симметричны, если ``aligned`` равно ``true``. Если ``aligned`` равно ``false``, все штрихи будут иметь одинаковую длину, но линия может выглядеть неполной на конце из-за того, что длина штриха не делится нацело на длину линии. Если ``aligned`` равно ``false``, штрихи отображаются полностью.
Если ``antialiased`` равно ``true``, к границе будут добавлены полупрозрачные «перья», что сделает контуры плавными.
\ **Примечание:** ``antialiased`` эффективен только в том случае, если ``width`` больше ``0.0``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_ellipse:
.. rst-class:: classref-method
|void| **draw_ellipse**\ (\ position\: :ref:`Vector2<class_Vector2>`, major\: :ref:`float<class_float>`, minor\: :ref:`float<class_float>`, color\: :ref:`Color<class_Color>`, filled\: :ref:`bool<class_bool>` = true, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_ellipse>`
Draws an ellipse with semi-major axis ``major`` and semi-minor axis ``minor``. See also :ref:`draw_circle()<class_CanvasItem_method_draw_circle>`, :ref:`draw_ellipse_arc()<class_CanvasItem_method_draw_ellipse_arc>`, :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>`, and :ref:`draw_polygon()<class_CanvasItem_method_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``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_ellipse_arc:
.. rst-class:: classref-method
|void| **draw_ellipse_arc**\ (\ center\: :ref:`Vector2<class_Vector2>`, major\: :ref:`float<class_float>`, minor\: :ref:`float<class_float>`, start_angle\: :ref:`float<class_float>`, end_angle\: :ref:`float<class_float>`, point_count\: :ref:`int<class_int>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_ellipse_arc>`
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 :ref:`draw_arc()<class_CanvasItem_method_draw_arc>`. See also :ref:`draw_ellipse()<class_CanvasItem_method_draw_ellipse>`.
If ``width`` is negative, it will be ignored and the arc will be drawn using :ref:`RenderingServer.PRIMITIVE_LINE_STRIP<class_RenderingServer_constant_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 :ref:`@GDScript.TAU<class_@GDScript_constant_TAU>` radians, then a full ellipse is drawn (i.e. arc will not overlap itself).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_end_animation:
.. rst-class:: classref-method
|void| **draw_end_animation**\ (\ ) :ref:`🔗<class_CanvasItem_method_draw_end_animation>`
После отправки всех фрагментов анимации через :ref:`draw_animation_slice()<class_CanvasItem_method_draw_animation_slice>` эта функция может быть использована для возврата рисования в состояние по умолчанию (все последующие команды рисования будут видны). Если вас не интересует этот конкретный вариант использования, использование этой функции после отправки фрагментов не требуется.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_lcd_texture_rect_region:
.. rst-class:: classref-method
|void| **draw_lcd_texture_rect_region**\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, src_rect\: :ref:`Rect2<class_Rect2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) :ref:`🔗<class_CanvasItem_method_draw_lcd_texture_rect_region>`
Рисует текстурированную прямоугольную область текстуры шрифта с субпиксельным сглаживанием ЖК-дисплея в заданной позиции, при необходимости модулируемую цветом. Параметр ``rect`` определяется в локальном пространстве.
Текстура рисуется с помощью следующей операции смешивания, режим смешивания :ref:`CanvasItemMaterial<class_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);
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_line:
.. rst-class:: classref-method
|void| **draw_line**\ (\ from\: :ref:`Vector2<class_Vector2>`, to\: :ref:`Vector2<class_Vector2>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_line>`
Рисует линию от одной 2D точки к другой заданного цвета и ширины. При необходимости можно использовать сглаживание. Позиции ``from`` и ``to`` определяются в локальном пространстве. См. также :ref:`draw_dashed_line()<class_CanvasItem_method_draw_dashed_line>`, :ref:`draw_multiline()<class_CanvasItem_method_draw_multiline>` и :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>`.
Если ``width`` отрицательный, то будет нарисован двухточечный примитив вместо четырёхточечного. Это означает, что при масштабировании CanvasItem линия останется тонкой. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_mesh:
.. rst-class:: classref-method
|void| **draw_mesh**\ (\ mesh\: :ref:`Mesh<class_Mesh>`, texture\: :ref:`Texture2D<class_Texture2D>`, transform\: :ref:`Transform2D<class_Transform2D>` = Transform2D(1, 0, 0, 1, 0, 0), modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) :ref:`🔗<class_CanvasItem_method_draw_mesh>`
Рисует :ref:`Mesh<class_Mesh>` в 2D, используя предоставленную текстуру. См. :ref:`MeshInstance2D<class_MeshInstance2D>` для получения соответствующей документации. Параметр ``transform`` определяется в локальном пространстве.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_msdf_texture_rect_region:
.. rst-class:: classref-method
|void| **draw_msdf_texture_rect_region**\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, src_rect\: :ref:`Rect2<class_Rect2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), outline\: :ref:`float<class_float>` = 0.0, pixel_range\: :ref:`float<class_float>` = 4.0, scale\: :ref:`float<class_float>` = 1.0\ ) :ref:`🔗<class_CanvasItem_method_draw_msdf_texture_rect_region>`
Рисует текстурированную прямоугольную область многоканальной текстуры поля расстояний со знаком в заданной позиции, при необходимости модулируемую цветом. Параметр ``rect`` определяется в локальном пространстве. См. :ref:`FontFile.multichannel_signed_distance_field<class_FontFile_property_multichannel_signed_distance_field>` для получения дополнительной информации и пояснений по рендерингу шрифтов MSDF.
Если ``outline`` положительный, каждое значение альфа-канала пикселя в области устанавливается равным максимальному значению истинного расстояния в радиусе ``outline``.
Значение ``pixel_range`` должно совпадать с значением, использованным при генерации текстуры поля расстояний.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_multiline:
.. rst-class:: classref-method
|void| **draw_multiline**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_multiline>`
Рисует несколько разрозненных линий с одинаковыми параметрами ``width`` и ``color``. Каждая линия определяется двумя последовательными точками из массива ``points`` в локальном пространстве, т.е. i-й сегмент состоит из ``points[2 * i]``, ``points[2 * i + 1]`` конечных точек. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()<class_CanvasItem_method_draw_line>`. Для рисования взаимосвязанных линий используйте :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>`.
Если ``width`` отрицательный, то будут отрисовываться двухточечные примитивы вместо четырёхточечных. Это означает, что при масштабировании CanvasItem линии останутся тонкими. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
\ **Примечание:** ``antialiased`` эффективен только в том случае, если ``width`` больше ``0.0``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_multiline_colors:
.. rst-class:: classref-method
|void| **draw_multiline_colors**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_multiline_colors>`
Рисует несколько разрозненных линий с равномерной ``width`` и посегментной раскраской. Каждый сегмент определяется двумя последовательными точками из массива ``points`` в локальном пространстве и соответствующим цветом из массива ``colors``, т.е. i-й сегмент состоит из ``points[2 * i]``, ``points[2 * i + 1]`` конечных точек и имеет цвет ``colors[i]``. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()<class_CanvasItem_method_draw_line>`. Для рисования взаимосвязанных линий используйте :ref:`draw_polyline_colors()<class_CanvasItem_method_draw_polyline_colors>`.
Если ``width`` отрицательный, то будут отрисовываться двухточечные примитивы вместо четырёхточечных. Это означает, что при масштабировании CanvasItem линии останутся тонкими. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
\ **Примечание:** ``antialiased`` эффективен только в том случае, если ``width`` больше, чем ``0.0``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_multiline_string:
.. rst-class:: classref-method
|void| **draw_multiline_string**\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, max_lines\: :ref:`int<class_int>` = -1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| :ref:`🔗<class_CanvasItem_method_draw_multiline_string>`
Разбивает ``text`` на строки и рисует их с указанным ``font`` в точке ``pos`` в локальном пространстве (в верхнем левом углу). Цвет текста будет умножен на ``modulate``. Если ``width`` больше или равен 0, текст будет обрезан, если превысит указанную ширину. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_multiline_string_outline:
.. rst-class:: classref-method
|void| **draw_multiline_string_outline**\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, max_lines\: :ref:`int<class_int>` = -1, size\: :ref:`int<class_int>` = 1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| :ref:`🔗<class_CanvasItem_method_draw_multiline_string_outline>`
Разбивает ``text`` на строки и рисует контур текста, используя указанный ``font`` в точке ``pos`` в локальном пространстве (в левом верхнем углу). Цвет текста будет умножен на ``modulate``. Если ``width`` больше или равен 0, текст будет обрезан, если превысит указанную ширину. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_multimesh:
.. rst-class:: classref-method
|void| **draw_multimesh**\ (\ multimesh\: :ref:`MultiMesh<class_MultiMesh>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_CanvasItem_method_draw_multimesh>`
Рисует :ref:`MultiMesh<class_MultiMesh>` в 2D с предоставленной текстурой. См. :ref:`MultiMeshInstance2D<class_MultiMeshInstance2D>` для соответствующей документации.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_polygon:
.. rst-class:: classref-method
|void| **draw_polygon**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) :ref:`🔗<class_CanvasItem_method_draw_polygon>`
Рисует сплошной многоугольник из любого количества точек, выпуклый или вогнутый. В отличие от метода :ref:`draw_colored_polygon()<class_CanvasItem_method_draw_colored_polygon>`, цвет каждой точки можно менять индивидуально. Массив ``points`` определён в локальном пространстве. См. также методы :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>` и :ref:`draw_polyline_colors()<class_CanvasItem_method_draw_polyline_colors>`. Если вам нужна большая гибкость (например, возможность использовать кости), используйте метод :ref:`RenderingServer.canvas_item_add_triangle_array()<class_RenderingServer_method_canvas_item_add_triangle_array>`.
\ **Примечание:** Если вы часто перерисовываете один и тот же многоугольник с большим количеством вершин, рассмотрите возможность предварительного расчёта триангуляции с помощью метода :ref:`Geometry2D.triangulate_polygon()<class_Geometry2D_method_triangulate_polygon>` и метода :ref:`draw_mesh()<class_CanvasItem_method_draw_mesh>`, метода :ref:`draw_multimesh()<class_CanvasItem_method_draw_multimesh>` или метода :ref:`RenderingServer.canvas_item_add_triangle_array()<class_RenderingServer_method_canvas_item_add_triangle_array>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_polyline:
.. rst-class:: classref-method
|void| **draw_polyline**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, color\: :ref:`Color<class_Color>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_polyline>`
Рисует соединённые отрезки линий с одинаковыми ``color`` и ``width`` и опциональным сглаживанием (поддерживается только для положительных значений ``width``). Массив ``points`` определён в локальном пространстве. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()<class_CanvasItem_method_draw_line>`. Для рисования несвязанных линий используйте :ref:`draw_multiline()<class_CanvasItem_method_draw_multiline>`. См. также :ref:`draw_polygon()<class_CanvasItem_method_draw_polygon>`.
Если ``width`` отрицательный, он будет проигнорирован, и ломаная линия будет отрисована с помощью :ref:`RenderingServer.PRIMITIVE_LINE_STRIP<class_RenderingServer_constant_PRIMITIVE_LINE_STRIP>`. Это означает, что при масштабировании CanvasItem ломаная линия останется тонкой. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_polyline_colors:
.. rst-class:: classref-method
|void| **draw_polyline_colors**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_polyline_colors>`
Рисует соединённые отрезки линий с равномерной шириной ``width``, поточечной раскраской и опциональным сглаживанием (поддерживается только для положительных значений ``width``). Цвета, назначенные точкам линии, соответствуют индексам между ``points`` и ``colors``, т.е. каждый отрезок линии заполняется градиентом между цветами конечных точек. Массив ``points`` определён в локальном пространстве. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()<class_CanvasItem_method_draw_line>`. Для рисования несвязанных линий используйте :ref:`draw_multiline_colors()<class_CanvasItem_method_draw_multiline_colors>`. См. также :ref:`draw_polygon()<class_CanvasItem_method_draw_polygon>`.
Если ``width`` отрицательный, он будет проигнорирован, и ломаная линия будет отрисована с помощью :ref:`RenderingServer.PRIMITIVE_LINE_STRIP<class_RenderingServer_constant_PRIMITIVE_LINE_STRIP>`. Это означает, что при масштабировании CanvasItem ломаная линия останется тонкой. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_primitive:
.. rst-class:: classref-method
|void| **draw_primitive**\ (\ points\: :ref:`PackedVector2Array<class_PackedVector2Array>`, colors\: :ref:`PackedColorArray<class_PackedColorArray>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>`, texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) :ref:`🔗<class_CanvasItem_method_draw_primitive>`
Рисует пользовательский примитив. 1 точка для точки, 2 точки для линии, 3 точки для треугольника и 4 точки для четырёхугольника. Если указано 0 точек или более 4 точек, ничего не будет отрисовано и будет выведено сообщение об ошибке. Массив ``points`` определён в локальном пространстве. См. также :ref:`draw_line()<class_CanvasItem_method_draw_line>`, :ref:`draw_polyline()<class_CanvasItem_method_draw_polyline>`, :ref:`draw_polygon()<class_CanvasItem_method_draw_polygon>` и :ref:`draw_rect()<class_CanvasItem_method_draw_rect>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_rect:
.. rst-class:: classref-method
|void| **draw_rect**\ (\ rect\: :ref:`Rect2<class_Rect2>`, color\: :ref:`Color<class_Color>`, filled\: :ref:`bool<class_bool>` = true, width\: :ref:`float<class_float>` = -1.0, antialiased\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_rect>`
Рисует прямоугольник. Если ``filled`` равен ``true``, прямоугольник будет залит указанным цветом ``color``. Если ``filled`` равен ``false``, прямоугольник будет нарисован обводкой с указанными ``color`` и ``width``. Параметр ``rect`` задаётся в локальном пространстве. См. также :ref:`draw_texture_rect()<class_CanvasItem_method_draw_texture_rect>`.
Если ``width`` отрицательный, то будут отрисовываться двухточечные примитивы вместо четырёхточечных. Это означает, что при масштабировании CanvasItem линии останутся тонкими. Если такое поведение нежелательно, передайте положительное значение ``width``, например, ``1.0``.
Если ``antialiased`` равен ``true``, к границе будут добавлены полупрозрачные «перья», что сделает контуры плавными.
\ **Примечание:** ``width`` эффективен только в том случае, если ``filled`` имеет значение ``false``.
\ **Примечание:** Незаполненные прямоугольники, нарисованные с отрицательным значением ``width``, могут отображаться некорректно. Например, углы могут отсутствовать или быть ярче из-за перекрывающихся линий (для полупрозрачного ``color``).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_set_transform:
.. rst-class:: classref-method
|void| **draw_set_transform**\ (\ position\: :ref:`Vector2<class_Vector2>`, rotation\: :ref:`float<class_float>` = 0.0, scale\: :ref:`Vector2<class_Vector2>` = Vector2(1, 1)\ ) :ref:`🔗<class_CanvasItem_method_draw_set_transform>`
Задаёт пользовательское локальное преобразование для отрисовки через компоненты. Всё, что будет отрисовано после этого, будет преобразовано этим преобразованием.
\ **Примечание:** :ref:`FontFile.oversampling<class_FontFile_property_oversampling>` *не* учитывает ``scale``. Это означает, что масштабирование приведёт к размытию или пикселизации растровых (не MSDF) динамических шрифтов. Чтобы текст оставался чётким независимо от масштаба, можно включить рендеринг шрифтов MSDF, включив :ref:`ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field<class_ProjectSettings_property_gui/theme/default_font_multichannel_signed_distance_field>` (применяется только к шрифту проекта по умолчанию) или **Multichannel Signed Distance Field** в параметрах импорта DynamicFont для пользовательских шрифтов. Для системных шрифтов :ref:`SystemFont.multichannel_signed_distance_field<class_SystemFont_property_multichannel_signed_distance_field>` можно включить в инспекторе.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_set_transform_matrix:
.. rst-class:: classref-method
|void| **draw_set_transform_matrix**\ (\ xform\: :ref:`Transform2D<class_Transform2D>`\ ) :ref:`🔗<class_CanvasItem_method_draw_set_transform_matrix>`
Задаёт локальное преобразование для рисования через матрицу. Всё, что будет отрисовано после этого, будет преобразовано этим преобразованием.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_string:
.. rst-class:: classref-method
|void| **draw_string**\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| :ref:`🔗<class_CanvasItem_method_draw_string>`
Рисует ``text`` с заданным ``font`` в точке ``pos`` в локальном пространстве (в левом нижнем углу, используя базовую линию шрифта). Цвет текста будет умножен на ``modulate``. Если ``width`` больше или равен 0, текст будет обрезан при превышении заданной ширины. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
\ **Пример:** Нарисовать надпись «Hello world» шрифтом проекта по умолчанию:
.. tabs::
.. code-tab:: gdscript
# При использовании этого метода в скрипте, который постоянно перерисовывается, переместите
# объявление `default_font` в переменную-член, назначенную в `_ready()`,
# чтобы элемент управления создавался только один раз.
var default_font = ThemeDB.fallback_font
var default_font_size = ThemeDB.fallback_font_size
draw_string(default_font, Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)
.. code-tab:: csharp
# При использовании этого метода в скрипте, который постоянно перерисовывается, переместите
# объявление `default_font` в переменную-член, назначенную в `_Ready()`,
# чтобы элемент управления создавался только один раз.
Font defaultFont = ThemeDB.FallbackFont;
int defaultFontSize = ThemeDB.FallbackFontSize;
DrawString(defaultFont, new Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);
См. также :ref:`Font.draw_string()<class_Font_method_draw_string>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_string_outline:
.. rst-class:: classref-method
|void| **draw_string_outline**\ (\ font\: :ref:`Font<class_Font>`, pos\: :ref:`Vector2<class_Vector2>`, text\: :ref:`String<class_String>`, alignment\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` = 0, width\: :ref:`float<class_float>` = -1, font_size\: :ref:`int<class_int>` = 16, size\: :ref:`int<class_int>` = 1, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\] = 3, direction\: :ref:`Direction<enum_TextServer_Direction>` = 0, orientation\: :ref:`Orientation<enum_TextServer_Orientation>` = 0, oversampling\: :ref:`float<class_float>` = 0.0\ ) |const| :ref:`🔗<class_CanvasItem_method_draw_string_outline>`
Рисует контур ``text`` с заданным ``font`` в точке ``pos`` в локальном пространстве (в левом нижнем углу, используя базовую линию шрифта). Цвет текста будет умножен на ``modulate``. Если ``width`` больше или равен 0, текст будет обрезан при превышении заданной ширины. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_style_box:
.. rst-class:: classref-method
|void| **draw_style_box**\ (\ style_box\: :ref:`StyleBox<class_StyleBox>`, rect\: :ref:`Rect2<class_Rect2>`\ ) :ref:`🔗<class_CanvasItem_method_draw_style_box>`
Рисует стилизованный прямоугольник. Параметр ``rect`` определяется в локальном пространстве.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_texture:
.. rst-class:: classref-method
|void| **draw_texture**\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, position\: :ref:`Vector2<class_Vector2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) :ref:`🔗<class_CanvasItem_method_draw_texture>`
Рисует текстуру в заданной позиции. Параметр ``position`` определяется в локальном пространстве.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_texture_rect:
.. rst-class:: classref-method
|void| **draw_texture_rect**\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, tile\: :ref:`bool<class_bool>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), transpose\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_CanvasItem_method_draw_texture_rect>`
Рисует текстурированный прямоугольник в заданной позиции, возможно, модулируемый цветом. Параметр ``rect`` определяется в локальном пространстве. Если ``transpose`` равен ``true``, координаты X и Y текстуры поменяются местами. См. также :ref:`draw_rect()<class_CanvasItem_method_draw_rect>` и :ref:`draw_texture_rect_region()<class_CanvasItem_method_draw_texture_rect_region>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_draw_texture_rect_region:
.. rst-class:: classref-method
|void| **draw_texture_rect_region**\ (\ texture\: :ref:`Texture2D<class_Texture2D>`, rect\: :ref:`Rect2<class_Rect2>`, src_rect\: :ref:`Rect2<class_Rect2>`, modulate\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1), transpose\: :ref:`bool<class_bool>` = false, clip_uv\: :ref:`bool<class_bool>` = true\ ) :ref:`🔗<class_CanvasItem_method_draw_texture_rect_region>`
Рисует текстурированный прямоугольник из области текстуры (указанной параметром ``src_rect``) в заданной точке локального пространства, при необходимости модулируя его цветом. Если параметр ``transpose`` равен ``true``, координаты X и Y текстуры поменяются местами. См. также :ref:`draw_texture_rect()<class_CanvasItem_method_draw_texture_rect>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_force_update_transform:
.. rst-class:: classref-method
|void| **force_update_transform**\ (\ ) :ref:`🔗<class_CanvasItem_method_force_update_transform>`
Заставляет обновить преобразование узла. Не удается, если узел не находится внутри дерева. См. также :ref:`get_transform()<class_CanvasItem_method_get_transform>`.
\ **Примечание:** Из соображений производительности изменения преобразования обычно накапливаются и применяются *один раз* в конце кадра. Обновление также распространяется на дочерние элементы **CanvasItem**. Поэтому используйте этот метод только тогда, когда вам нужно актуальное преобразование (например, во время физических операций).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_canvas:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **get_canvas**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_canvas>`
Возвращает :ref:`RID<class_RID>` холста :ref:`World2D<class_World2D>`, на котором зарегистрирован этот узел, используемый в :ref:`RenderingServer<class_RenderingServer>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_canvas_item:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **get_canvas_item**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_canvas_item>`
Возвращает внутренний элемент холста :ref:`RID<class_RID>`, используемый в :ref:`RenderingServer<class_RenderingServer>` для этого узла.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_canvas_layer_node:
.. rst-class:: classref-method
:ref:`CanvasLayer<class_CanvasLayer>` **get_canvas_layer_node**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_canvas_layer_node>`
Возвращает :ref:`CanvasLayer<class_CanvasLayer>`, содержащий этот узел, или ``null``, если узел не находится ни в одном :ref:`CanvasLayer<class_CanvasLayer>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_canvas_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **get_canvas_transform**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_canvas_transform>`
Возвращает преобразование этого узла, преобразованное из зарегистрированной системы координат холста в систему координат его области просмотра. См. также :ref:`Node.get_viewport()<class_Node_method_get_viewport>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_global_mouse_position:
.. rst-class:: classref-method
:ref:`Vector2<class_Vector2>` **get_global_mouse_position**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_global_mouse_position>`
Возвращает глобальную позицию курсора мыши относительно :ref:`CanvasLayer<class_CanvasLayer>`, содержащего этот узел.
\ **Примечание:** Для координат экранного пространства (например, при использовании невстроенного :ref:`Popup<class_Popup>`) можно использовать :ref:`DisplayServer.mouse_get_position()<class_DisplayServer_method_mouse_get_position>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_global_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **get_global_transform**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_global_transform>`
Возвращает глобальную матрицу преобразования этого элемента, т. е. объединенное преобразование до самого верхнего узла **CanvasItem**. Самый верхний элемент — это **CanvasItem**, у которого либо нет родителя, либо есть родитель, отличный от **CanvasItem**, либо включен :ref:`top_level<class_CanvasItem_property_top_level>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_global_transform_with_canvas:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **get_global_transform_with_canvas**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_global_transform_with_canvas>`
Возвращает преобразование из локальной системы координат этого **CanvasItem** в систему координат :ref:`Viewport<class_Viewport>`-ов.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_instance_shader_parameter:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **get_instance_shader_parameter**\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| :ref:`🔗<class_CanvasItem_method_get_instance_shader_parameter>`
Получить значение параметра шейдера, установленное для данного экземпляра.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_local_mouse_position:
.. rst-class:: classref-method
:ref:`Vector2<class_Vector2>` **get_local_mouse_position**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_local_mouse_position>`
Возвращает положение мыши в этом **CanvasItem**, используя локальную систему координат этого **CanvasItem**.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_screen_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **get_screen_transform**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_screen_transform>`
Returns the transform of this **CanvasItem** in global screen coordinates (i.e. taking window position into account). Mostly useful for editor plugins.
Equivalent to :ref:`get_global_transform_with_canvas()<class_CanvasItem_method_get_global_transform_with_canvas>` if the window is embedded (see :ref:`Viewport.gui_embed_subwindows<class_Viewport_property_gui_embed_subwindows>`).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **get_transform**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_transform>`
Возвращает матрицу преобразования этого **CanvasItem**.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_viewport_rect:
.. rst-class:: classref-method
:ref:`Rect2<class_Rect2>` **get_viewport_rect**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_viewport_rect>`
Возвращает границы области просмотра этого узла как :ref:`Rect2<class_Rect2>`. См. также :ref:`Node.get_viewport()<class_Node_method_get_viewport>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_viewport_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **get_viewport_transform**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_viewport_transform>`
Возвращает преобразование этого узла, преобразованное из зарегистрированной системы координат холста в систему координат его вьюпорта-эмбеддера. См. также :ref:`Viewport.get_final_transform()<class_Viewport_method_get_final_transform>` и :ref:`Node.get_viewport()<class_Node_method_get_viewport>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_visibility_layer_bit:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_visibility_layer_bit**\ (\ layer\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_CanvasItem_method_get_visibility_layer_bit>`
Возвращает ``true``, если слой с указанным индексом установлен в :ref:`visible_layer<class_CanvasItem_property_visible_layer>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_get_world_2d:
.. rst-class:: classref-method
:ref:`World2D<class_World2D>` **get_world_2d**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_get_world_2d>`
Возвращает :ref:`World2D<class_World2D>`, в котором зарегистрирован этот узел.
Обычно это то же самое, что и область просмотра этого узла (см. :ref:`Node.get_viewport()<class_Node_method_get_viewport>` и :ref:`Viewport.find_world_2d()<class_Viewport_method_find_world_2d>`).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_hide:
.. rst-class:: classref-method
|void| **hide**\ (\ ) :ref:`🔗<class_CanvasItem_method_hide>`
Скрыть **CanvasItem**, если он в данный момент виден. Это эквивалентно установке :ref:`visible<class_CanvasItem_property_visible>` на ``false``.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_is_local_transform_notification_enabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_local_transform_notification_enabled**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_is_local_transform_notification_enabled>`
Возвращает ``true``, если узел получает :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED<class_CanvasItem_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>` всякий раз, когда изменяется его локальное преобразование. Это включается с помощью :ref:`set_notify_local_transform()<class_CanvasItem_method_set_notify_local_transform>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_is_transform_notification_enabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_transform_notification_enabled**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_is_transform_notification_enabled>`
Возвращает ``true``, если узел получает :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_CanvasItem_constant_NOTIFICATION_TRANSFORM_CHANGED>` всякий раз, когда изменяется его глобальное преобразование. Это включается с помощью :ref:`set_notify_transform()<class_CanvasItem_method_set_notify_transform>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_is_visible_in_tree:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_visible_in_tree**\ (\ ) |const| :ref:`🔗<class_CanvasItem_method_is_visible_in_tree>`
Возвращает ``true``, если узел присутствует в :ref:`SceneTree<class_SceneTree>`, его свойство :ref:`visible<class_CanvasItem_property_visible>` равно ``true`` и все его предки также видны. Если какой-либо предок скрыт, этот узел не будет виден в дереве сцены и, следовательно, не будет отрисован (см. :ref:`_draw()<class_CanvasItem_private_method__draw>`).
Видимость проверяется только в родительских узлах, которые наследуются от **CanvasItem**, :ref:`CanvasLayer<class_CanvasLayer>` и :ref:`Window<class_Window>`. Если родительский узел имеет любой другой тип (например, :ref:`Node<class_Node>`, :ref:`AnimationPlayer<class_AnimationPlayer>` или :ref:`Node3D<class_Node3D>`), он считается видимым.
\ **Примечание:** Этот метод не учитывает :ref:`visible_layer<class_CanvasItem_property_visible_layer>`, поэтому даже если этот метод возвращает ``true``, узел может оказаться неотрисованным.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_make_canvas_position_local:
.. rst-class:: classref-method
:ref:`Vector2<class_Vector2>` **make_canvas_position_local**\ (\ viewport_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_CanvasItem_method_make_canvas_position_local>`
Преобразует ``viewport_point`` из координат области просмотра в локальные координаты этого узла.
Для противоположной операции используйте :ref:`get_global_transform_with_canvas()<class_CanvasItem_method_get_global_transform_with_canvas>`.
::
var viewport_point = get_global_transform_with_canvas() * local_point
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_make_input_local:
.. rst-class:: classref-method
:ref:`InputEvent<class_InputEvent>` **make_input_local**\ (\ event\: :ref:`InputEvent<class_InputEvent>`\ ) |const| :ref:`🔗<class_CanvasItem_method_make_input_local>`
Возвращает копию заданного ``event`` с его координатами, преобразованными из глобального пространства в локальное пространство этого **CanvasItem**. Если это невозможно, возвращает тот же :ref:`InputEvent<class_InputEvent>` без изменений.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_move_to_front:
.. rst-class:: classref-method
|void| **move_to_front**\ (\ ) :ref:`🔗<class_CanvasItem_method_move_to_front>`
Перемещает этот узел ниже его братьев и сестер, обычно заставляя узел рисоваться поверх своих братьев и сестер. Ничего не делает, если у этого узла нет родителя. См. также :ref:`Node.move_child()<class_Node_method_move_child>`.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_queue_redraw:
.. rst-class:: classref-method
|void| **queue_redraw**\ (\ ) :ref:`🔗<class_CanvasItem_method_queue_redraw>`
Ставит в очередь **CanvasItem** для перерисовки. Во время простоя, если **CanvasItem** виден, отправляется :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` и вызывается :ref:`_draw()<class_CanvasItem_private_method__draw>`. Это происходит только **один раз** за кадр, даже если этот метод вызывался несколько раз.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_set_instance_shader_parameter:
.. rst-class:: classref-method
|void| **set_instance_shader_parameter**\ (\ name\: :ref:`StringName<class_StringName>`, value\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_CanvasItem_method_set_instance_shader_parameter>`
Установите значение шейдерной униформы только для этого экземпляра (`per-instance uniform <../tutorials/shaders/shader_reference/shading_language.html#per-instance-uniforms>`__). См. также :ref:`ShaderMaterial.set_shader_parameter()<class_ShaderMaterial_method_set_shader_parameter>`, чтобы назначить униформу для всех экземпляров, использующих один и тот же :ref:`ShaderMaterial<class_ShaderMaterial>`.
\ **Примечание:** Чтобы шейдерную униформу можно было назначать для каждого экземпляра, она *должна* быть определена с помощью ``instance uniform ...``, а не ``uniform ...`` в коде шейдера.
\ **Примечание:** ``name`` чувствительна к регистру и должна точно соответствовать имени униформы в коде (а не заглавному имени в инспекторе).
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_set_notify_local_transform:
.. rst-class:: classref-method
|void| **set_notify_local_transform**\ (\ enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_CanvasItem_method_set_notify_local_transform>`
Если ``true``, узел будет получать :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED<class_CanvasItem_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>` всякий раз, когда его локальное преобразование изменяется.
\ **Примечание:** Многие элементы холста, такие как :ref:`Bone2D<class_Bone2D>` или :ref:`CollisionShape2D<class_CollisionShape2D>`, автоматически включают это для правильной работы.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_set_notify_transform:
.. rst-class:: classref-method
|void| **set_notify_transform**\ (\ enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_CanvasItem_method_set_notify_transform>`
If ``true``, the node will receive :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_CanvasItem_constant_NOTIFICATION_TRANSFORM_CHANGED>` whenever its global transform changes.
\ **Note:** Many canvas items such as :ref:`Camera2D<class_Camera2D>` or :ref:`Light2D<class_Light2D>` automatically enable this in order to function correctly.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_set_visibility_layer_bit:
.. rst-class:: classref-method
|void| **set_visibility_layer_bit**\ (\ layer\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_CanvasItem_method_set_visibility_layer_bit>`
Установить/сбросить отдельные биты на слое видимости рендеринга. Это упрощает редактирование слоя видимости этого **CanvasItem**.
.. rst-class:: classref-item-separator
----
.. _class_CanvasItem_method_show:
.. rst-class:: classref-method
|void| **show**\ (\ ) :ref:`🔗<class_CanvasItem_method_show>`
Показывать **CanvasItem**, если он в данный момент скрыт. Это эквивалентно установке :ref:`visible<class_CanvasItem_property_visible>` на ``true``.
\ **Примечание:** Для элементов управления, которые наследуют :ref:`Popup<class_Popup>`, правильный способ сделать их видимыми — вызвать одну из нескольких функций ``popup*()``.
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`