:github_url: hide .. _class_CanvasItem: CanvasItem ========== **Наследует:** :ref:`Node` **<** :ref:`Object` **Наследуется от:** :ref:`Control`, :ref:`Node2D` Абстрактный базовый класс для всего, что находится в двумерном пространстве. .. rst-class:: classref-introduction-group Описание ---------------- Абстрактный базовый класс для всего в 2D-пространстве. Элементы холста располагаются в дереве; дочерние элементы наследуют и расширяют преобразование своего родителя. **CanvasItem** расширяется :ref:`Control` для узлов, связанных с GUI, и :ref:`Node2D` для 2D-игровых объектов. Любой **CanvasItem** может рисовать. Для этого движок вызывает :ref:`queue_redraw()`, затем во время простоя будет получена :ref:`NOTIFICATION_DRAW` для запроса перерисовки. Благодаря этому элементы холста не нужно перерисовывать в каждом кадре, что значительно повышает производительность. Предоставляется несколько функций для рисования на **CanvasItem** (см. функции ``draw_*``). Однако их можно использовать только внутри :ref:`_draw()`, соответствующего ему :ref:`Object._notification()` или методов, связанных с сигналом :ref:`draw`. Элементы холста рисуются в древовидном порядке на своем слое холста. По умолчанию дочерние элементы находятся поверх своих родителей, поэтому корневой **CanvasItem** будет отрисован позади всего. Это поведение можно изменить для каждого элемента. \ **CanvasItem** может быть скрыт, что также скроет его дочерние элементы. Изменяя различные другие свойства **CanvasItem**, вы также можете модулировать его цвет (через :ref:`modulate` или :ref:`self_modulate`), изменять его Z-индекс, режим смешивания и многое другое. Обратите внимание, что такие свойства, как преобразование, модуляция и видимость, распространяются только на *direct* дочерние узлы **CanvasItem**. Если между ними есть узел, не являющийся **CanvasItem**, например :ref:`Node` или :ref:`AnimationPlayer`, то узлы **CanvasItem** ниже будут иметь независимую позицию и цепочку :ref:`modulate`. См. также :ref:`top_level`. .. rst-class:: classref-introduction-group Обучающие материалы -------------------------------------- - :doc:`Преобразования области просмотра и холста <../tutorials/2d/2d_transforms>` - :doc:`Индивидуальный рисунок в 2D <../tutorials/2d/custom_drawing_in_2d>` - `Демонстрация визуализатора аудиоспектра `__ .. rst-class:: classref-reftable-group Свойства ---------------- .. table:: :widths: auto +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`ClipChildrenMode` | :ref:`clip_children` | ``0`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`light_mask` | ``1`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`Material` | :ref:`material` | | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`Color` | :ref:`modulate` | ``Color(1, 1, 1, 1)`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`Color` | :ref:`self_modulate` | ``Color(1, 1, 1, 1)`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`show_behind_parent` | ``false`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`TextureFilter` | :ref:`texture_filter` | ``0`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`TextureRepeat` | :ref:`texture_repeat` | ``0`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`top_level` | ``false`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`use_parent_material` | ``false`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`visibility_layer` | ``1`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`visible` | ``true`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`y_sort_enabled` | ``false`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`z_as_relative` | ``true`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`z_index` | ``0`` | +-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+ .. rst-class:: classref-reftable-group Методы ------------ .. table:: :widths: auto +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_draw`\ (\ ) |virtual| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_animation_slice`\ (\ animation_length\: :ref:`float`, slice_begin\: :ref:`float`, slice_end\: :ref:`float`, offset\: :ref:`float` = 0.0\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_arc`\ (\ center\: :ref:`Vector2`, radius\: :ref:`float`, start_angle\: :ref:`float`, end_angle\: :ref:`float`, point_count\: :ref:`int`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_char`\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, char\: :ref:`String`, font_size\: :ref:`int` = 16, modulate\: :ref:`Color` = Color(1, 1, 1, 1), oversampling\: :ref:`float` = 0.0\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_char_outline`\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, char\: :ref:`String`, font_size\: :ref:`int` = 16, size\: :ref:`int` = -1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), oversampling\: :ref:`float` = 0.0\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_circle`\ (\ position\: :ref:`Vector2`, radius\: :ref:`float`, color\: :ref:`Color`, filled\: :ref:`bool` = true, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_colored_polygon`\ (\ points\: :ref:`PackedVector2Array`, color\: :ref:`Color`, uvs\: :ref:`PackedVector2Array` = PackedVector2Array(), texture\: :ref:`Texture2D` = null\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_dashed_line`\ (\ from\: :ref:`Vector2`, to\: :ref:`Vector2`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, dash\: :ref:`float` = 2.0, aligned\: :ref:`bool` = true, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_ellipse`\ (\ position\: :ref:`Vector2`, major\: :ref:`float`, minor\: :ref:`float`, color\: :ref:`Color`, filled\: :ref:`bool` = true, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_ellipse_arc`\ (\ center\: :ref:`Vector2`, major\: :ref:`float`, minor\: :ref:`float`, start_angle\: :ref:`float`, end_angle\: :ref:`float`, point_count\: :ref:`int`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_end_animation`\ (\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_lcd_texture_rect_region`\ (\ texture\: :ref:`Texture2D`, rect\: :ref:`Rect2`, src_rect\: :ref:`Rect2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1)\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_line`\ (\ from\: :ref:`Vector2`, to\: :ref:`Vector2`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_mesh`\ (\ mesh\: :ref:`Mesh`, texture\: :ref:`Texture2D`, transform\: :ref:`Transform2D` = Transform2D(1, 0, 0, 1, 0, 0), modulate\: :ref:`Color` = Color(1, 1, 1, 1)\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_msdf_texture_rect_region`\ (\ texture\: :ref:`Texture2D`, rect\: :ref:`Rect2`, src_rect\: :ref:`Rect2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1), outline\: :ref:`float` = 0.0, pixel_range\: :ref:`float` = 4.0, scale\: :ref:`float` = 1.0\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_multiline`\ (\ points\: :ref:`PackedVector2Array`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_multiline_colors`\ (\ points\: :ref:`PackedVector2Array`, colors\: :ref:`PackedColorArray`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_multiline_string`\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, max_lines\: :ref:`int` = -1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_multiline_string_outline`\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, max_lines\: :ref:`int` = -1, size\: :ref:`int` = 1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_multimesh`\ (\ multimesh\: :ref:`MultiMesh`, texture\: :ref:`Texture2D`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_polygon`\ (\ points\: :ref:`PackedVector2Array`, colors\: :ref:`PackedColorArray`, uvs\: :ref:`PackedVector2Array` = PackedVector2Array(), texture\: :ref:`Texture2D` = null\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_polyline`\ (\ points\: :ref:`PackedVector2Array`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_polyline_colors`\ (\ points\: :ref:`PackedVector2Array`, colors\: :ref:`PackedColorArray`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_primitive`\ (\ points\: :ref:`PackedVector2Array`, colors\: :ref:`PackedColorArray`, uvs\: :ref:`PackedVector2Array`, texture\: :ref:`Texture2D` = null\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_rect`\ (\ rect\: :ref:`Rect2`, color\: :ref:`Color`, filled\: :ref:`bool` = true, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_set_transform`\ (\ position\: :ref:`Vector2`, rotation\: :ref:`float` = 0.0, scale\: :ref:`Vector2` = Vector2(1, 1)\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_set_transform_matrix`\ (\ xform\: :ref:`Transform2D`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_string`\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, modulate\: :ref:`Color` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_string_outline`\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, size\: :ref:`int` = 1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_style_box`\ (\ style_box\: :ref:`StyleBox`, rect\: :ref:`Rect2`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_texture`\ (\ texture\: :ref:`Texture2D`, position\: :ref:`Vector2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1)\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_texture_rect`\ (\ texture\: :ref:`Texture2D`, rect\: :ref:`Rect2`, tile\: :ref:`bool`, modulate\: :ref:`Color` = Color(1, 1, 1, 1), transpose\: :ref:`bool` = false\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_texture_rect_region`\ (\ texture\: :ref:`Texture2D`, rect\: :ref:`Rect2`, src_rect\: :ref:`Rect2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1), transpose\: :ref:`bool` = false, clip_uv\: :ref:`bool` = true\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`force_update_transform`\ (\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`get_canvas`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`get_canvas_item`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`CanvasLayer` | :ref:`get_canvas_layer_node`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`get_canvas_transform`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_global_mouse_position`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`get_global_transform`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`get_global_transform_with_canvas`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_instance_shader_parameter`\ (\ name\: :ref:`StringName`\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_local_mouse_position`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`get_screen_transform`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`get_transform`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Rect2` | :ref:`get_viewport_rect`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`get_viewport_transform`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_visibility_layer_bit`\ (\ layer\: :ref:`int`\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`World2D` | :ref:`get_world_2d`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`hide`\ (\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_local_transform_notification_enabled`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_transform_notification_enabled`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_visible_in_tree`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`make_canvas_position_local`\ (\ viewport_point\: :ref:`Vector2`\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`InputEvent` | :ref:`make_input_local`\ (\ event\: :ref:`InputEvent`\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`move_to_front`\ (\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`queue_redraw`\ (\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_instance_shader_parameter`\ (\ name\: :ref:`StringName`, value\: :ref:`Variant`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_notify_local_transform`\ (\ enable\: :ref:`bool`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_notify_transform`\ (\ enable\: :ref:`bool`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_visibility_layer_bit`\ (\ layer\: :ref:`int`, enabled\: :ref:`bool`\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`show`\ (\ ) | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Сигналы -------------- .. _class_CanvasItem_signal_draw: .. rst-class:: classref-signal **draw**\ (\ ) :ref:`🔗` Вызывается, когда **CanvasItem** должен перерисоваться, *после* соответствующего уведомления :ref:`NOTIFICATION_DRAW` и *до* вызова :ref:`_draw()`. \ **Примечание:** Отложенные соединения не позволяют рисовать через методы ``draw_*``. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_signal_hidden: .. rst-class:: classref-signal **hidden**\ (\ ) :ref:`🔗` Выдается, когда этот узел становится скрытым, т.е. он больше не виден в дереве (см. :ref:`is_visible_in_tree()`). .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_signal_item_rect_changed: .. rst-class:: classref-signal **item_rect_changed**\ (\ ) :ref:`🔗` Вызывается при изменении границ **CanvasItem** (положения или размера) или при выполнении действия, которое могло повлиять на эти границы (например, изменение :ref:`Sprite2D.texture`). .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_signal_visibility_changed: .. rst-class:: classref-signal **visibility_changed**\ (\ ) :ref:`🔗` Выдается при изменении видимости **CanvasItem**, либо из-за изменения его собственного свойства :ref:`visible`, либо из-за изменения его видимости в дереве (см. :ref:`is_visible_in_tree()`). Этот сигнал выдается *после* связанного уведомления :ref:`NOTIFICATION_VISIBILITY_CHANGED`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Перечисления ------------------------ .. _enum_CanvasItem_TextureFilter: .. rst-class:: classref-enumeration enum **TextureFilter**: :ref:`🔗` .. _class_CanvasItem_constant_TEXTURE_FILTER_PARENT_NODE: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_PARENT_NODE** = ``0`` **CanvasItem** унаследует фильтр от своего родителя. .. _class_CanvasItem_constant_TEXTURE_FILTER_NEAREST: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_NEAREST** = ``1`` Фильтр текстуры считывает только ближайший пиксель. Это делает текстуру пикселизированной вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются). .. _class_CanvasItem_constant_TEXTURE_FILTER_LINEAR: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_LINEAR** = ``2`` Фильтр текстуры смешивает ближайшие 4 пикселя. Это делает текстуру гладкой вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются). .. _class_CanvasItem_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS** = ``3`` Фильтр текстуры считывает данные с ближайшего пикселя и смешивает данные между двумя ближайшими mip-картами (или использует ближайшую mip-карту, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter` имеет значение ``true``). Это делает текстуру пикселизированной вблизи и гладкой на расстоянии. Используйте это для текстур, не являющихся пиксельным искусством, которые можно просматривать в низком масштабе (например, из-за масштабирования :ref:`Camera2D` или масштабирования спрайтов), поскольку mip-карты важны для сглаживания пикселей, которые меньше пикселей на экране. .. _class_CanvasItem_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_LINEAR_WITH_MIPMAPS** = ``4`` Фильтр текстуры смешивает ближайшие 4 пикселя и ближайшие 2 mip-карты (или использует ближайшую mip-карту, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter` имеет значение ``true``). Это делает текстуру гладкой вблизи и гладкой на расстоянии. Используйте это для текстур непиксельной графики, которые можно просматривать в низком масштабе (например, из-за масштабирования :ref:`Camera2D` или масштабирования спрайтов), поскольку mip-карты важны для сглаживания пикселей, которые меньше пикселей на экране. .. _class_CanvasItem_constant_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC** = ``5`` Текстурный фильтр считывает данные с ближайшего пикселя и смешивает два mip-текстурных отображения (или использует ближайшее mip-текстурное отображение, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter` имеет значение ``true``) на основе угла между поверхностью и видом камеры. Это делает текстуру пикселизированной вблизи и гладкой на расстоянии. Анизотропная фильтрация улучшает качество текстуры на поверхностях, которые почти совпадают с камерой, но работает немного медленнее. Уровень анизотропной фильтрации можно изменить, настроив :ref:`ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level`. \ **Примечание:** Этот текстурный фильтр редко бывает полезен в 2D-проектах. :ref:`TEXTURE_FILTER_NEAREST_WITH_MIPMAPS` обычно более подходит в этом случае. .. _class_CanvasItem_constant_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC** = ``6`` Фильтр текстуры смешивает ближайшие 4 пикселя и смешивает 2 mip-карты (или использует ближайшую mip-карту, если :ref:`ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter` имеет значение ``true``) на основе угла между поверхностью и видом камеры. Это делает текстуру гладкой вблизи и гладкой на расстоянии. Анизотропная фильтрация улучшает качество текстуры на поверхностях, которые почти совпадают с камерой, но немного медленнее. Уровень анизотропной фильтрации можно изменить, настроив :ref:`ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level`. \ **Примечание:** Этот фильтр текстуры редко полезен в 2D-проектах. :ref:`TEXTURE_FILTER_LINEAR_WITH_MIPMAPS` обычно более подходит в этом случае. .. _class_CanvasItem_constant_TEXTURE_FILTER_MAX: .. rst-class:: classref-enumeration-constant :ref:`TextureFilter` **TEXTURE_FILTER_MAX** = ``7`` Представляет размер перечисления :ref:`TextureFilter`. .. rst-class:: classref-item-separator ---- .. _enum_CanvasItem_TextureRepeat: .. rst-class:: classref-enumeration enum **TextureRepeat**: :ref:`🔗` .. _class_CanvasItem_constant_TEXTURE_REPEAT_PARENT_NODE: .. rst-class:: classref-enumeration-constant :ref:`TextureRepeat` **TEXTURE_REPEAT_PARENT_NODE** = ``0`` **CanvasItem** унаследует фильтр от своего родителя. .. _class_CanvasItem_constant_TEXTURE_REPEAT_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`TextureRepeat` **TEXTURE_REPEAT_DISABLED** = ``1`` Текстура не повторяется. Выборка текстуры за пределами её границ приведёт к "растяжению" граничных пикселей. Этого можно избежать, обеспечив полностью прозрачную границу шириной в 1 пиксель с каждой стороны текстуры. .. _class_CanvasItem_constant_TEXTURE_REPEAT_ENABLED: .. rst-class:: classref-enumeration-constant :ref:`TextureRepeat` **TEXTURE_REPEAT_ENABLED** = ``2`` Текстура повторяется при превышении размера текстуры. .. _class_CanvasItem_constant_TEXTURE_REPEAT_MIRROR: .. rst-class:: classref-enumeration-constant :ref:`TextureRepeat` **TEXTURE_REPEAT_MIRROR** = ``3`` Текстура повторяется при превышении размера текстуры в "плиточном режиме 2×2". Повторяющиеся текстуры в четных позициях зеркально отражаются. .. _class_CanvasItem_constant_TEXTURE_REPEAT_MAX: .. rst-class:: classref-enumeration-constant :ref:`TextureRepeat` **TEXTURE_REPEAT_MAX** = ``4`` Представляет размер перечисления :ref:`TextureRepeat`. .. rst-class:: classref-item-separator ---- .. _enum_CanvasItem_ClipChildrenMode: .. rst-class:: classref-enumeration enum **ClipChildrenMode**: :ref:`🔗` .. _class_CanvasItem_constant_CLIP_CHILDREN_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`ClipChildrenMode` **CLIP_CHILDREN_DISABLED** = ``0`` Дочерние элементы рисуются поверх этого узла и не обрезаются. .. _class_CanvasItem_constant_CLIP_CHILDREN_ONLY: .. rst-class:: classref-enumeration-constant :ref:`ClipChildrenMode` **CLIP_CHILDREN_ONLY** = ``1`` Этот узел используется как маска и **не** рисуется. Маска основана на альфа-канале этого узла: непрозрачные пиксели сохраняются, прозрачные пиксели отбрасываются, а полупрозрачные пиксели смешиваются в соответствии с их непрозрачностью. Потомки обрезаются по рисуемой области этого узла. .. _class_CanvasItem_constant_CLIP_CHILDREN_AND_DRAW: .. rst-class:: classref-enumeration-constant :ref:`ClipChildrenMode` **CLIP_CHILDREN_AND_DRAW** = ``2`` Этот узел используется как маска и также рисуется. Маска основана на альфа-канале этого узла: непрозрачные пиксели сохраняются, прозрачные пиксели отбрасываются, а полупрозрачные пиксели смешиваются в соответствии с их непрозрачностью. Дочерние элементы обрезаются по рисуемой области родителя. .. _class_CanvasItem_constant_CLIP_CHILDREN_MAX: .. rst-class:: classref-enumeration-constant :ref:`ClipChildrenMode` **CLIP_CHILDREN_MAX** = ``3`` Представляет размер перечисления :ref:`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:`🔗` Уведомление получено, когда изменяется глобальное преобразование этого узла, если :ref:`is_transform_notification_enabled()` равно ``true``. См. также :ref:`set_notify_transform()` и :ref:`get_transform()`. \ **Примечание:** Многие элементы холста, такие как :ref:`Camera2D` или :ref:`CollisionObject2D`, автоматически включают это для корректной работы. .. _class_CanvasItem_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED: .. rst-class:: classref-constant **NOTIFICATION_LOCAL_TRANSFORM_CHANGED** = ``35`` :ref:`🔗` Уведомление получено, когда изменяется преобразование этого узла, если :ref:`is_local_transform_notification_enabled()` равно ``true``. Это не получено, когда изменяется преобразование родительского :ref:`Node2D`. См. также :ref:`set_notify_local_transform()`. \ **Примечание:** Многие элементы холста, такие как :ref:`Camera2D` или :ref:`CollisionShape2D`, автоматически включают это для корректной работы. .. _class_CanvasItem_constant_NOTIFICATION_DRAW: .. rst-class:: classref-constant **NOTIFICATION_DRAW** = ``30`` :ref:`🔗` **CanvasItem** запрашивается для рисования (см. :ref:`_draw()`). .. _class_CanvasItem_constant_NOTIFICATION_VISIBILITY_CHANGED: .. rst-class:: classref-constant **NOTIFICATION_VISIBILITY_CHANGED** = ``31`` :ref:`🔗` Уведомление получено, когда видимость этого узла изменяется (см. :ref:`visible` и :ref:`is_visible_in_tree()`). Это уведомление получено *до* связанного сигнала :ref:`visibility_changed`. .. _class_CanvasItem_constant_NOTIFICATION_ENTER_CANVAS: .. rst-class:: classref-constant **NOTIFICATION_ENTER_CANVAS** = ``32`` :ref:`🔗` **CanvasItem** вошел в холст. .. _class_CanvasItem_constant_NOTIFICATION_EXIT_CANVAS: .. rst-class:: classref-constant **NOTIFICATION_EXIT_CANVAS** = ``33`` :ref:`🔗` 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:`🔗` Уведомление получено, когда этот **CanvasItem** зарегистрирован в новом :ref:`World2D` (см. :ref:`get_world_2d()`). .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания свойств -------------------------------- .. _class_CanvasItem_property_clip_children: .. rst-class:: classref-property :ref:`ClipChildrenMode` **clip_children** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_clip_children_mode**\ (\ value\: :ref:`ClipChildrenMode`\ ) - :ref:`ClipChildrenMode` **get_clip_children_mode**\ (\ ) Режим, в котором этот узел обрезает свои дочерние элементы, действуя как маска. \ **Примечание:** Узлы обрезания не могут быть вложенными или помещены в :ref:`CanvasGroup`. Если предок этого узла обрезает свои дочерние элементы или является :ref:`CanvasGroup`, то режим обрезания этого узла должен быть установлен на :ref:`CLIP_CHILDREN_DISABLED`, чтобы избежать непредвиденного поведения. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_light_mask: .. rst-class:: classref-property :ref:`int` **light_mask** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_light_mask**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_light_mask**\ (\ ) Слои рендеринга, в которых этот **CanvasItem** реагирует на узлы :ref:`Light2D`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_material: .. rst-class:: classref-property :ref:`Material` **material** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_material**\ (\ value\: :ref:`Material`\ ) - :ref:`Material` **get_material**\ (\ ) Материал, примененный к этому **CanvasItem**. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_modulate: .. rst-class:: classref-property :ref:`Color` **modulate** = ``Color(1, 1, 1, 1)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_modulate**\ (\ value\: :ref:`Color`\ ) - :ref:`Color` **get_modulate**\ (\ ) Цвет, примененный к этому **CanvasItem**. Это свойство влияет на дочерние **CanvasItem**, в отличие от :ref:`self_modulate`, которое влияет только на сам узел. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_self_modulate: .. rst-class:: classref-property :ref:`Color` **self_modulate** = ``Color(1, 1, 1, 1)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_self_modulate**\ (\ value\: :ref:`Color`\ ) - :ref:`Color` **get_self_modulate**\ (\ ) Цвет, примененный к этому **CanvasItem**. Это свойство **не** влияет на дочерние **CanvasItem**, в отличие от :ref:`modulate`, которое влияет как на сам узел, так и на его дочерние элементы. \ **Примечание:** Внутренние дочерние элементы также не затрагиваются этим свойством (см. параметр ``include_internal`` в :ref:`Node.add_child()`). Для встроенных узлов это включает ползунки в :ref:`ColorPicker` и панель вкладок в :ref:`TabContainer`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_show_behind_parent: .. rst-class:: classref-property :ref:`bool` **show_behind_parent** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_draw_behind_parent**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_draw_behind_parent_enabled**\ (\ ) Если ``true``, этот узел отрисовывается позади своего родителя. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_texture_filter: .. rst-class:: classref-property :ref:`TextureFilter` **texture_filter** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_texture_filter**\ (\ value\: :ref:`TextureFilter`\ ) - :ref:`TextureFilter` **get_texture_filter**\ (\ ) Режим фильтрации, используемый для рендеринга текстур этого **CanvasItem**. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_texture_repeat: .. rst-class:: classref-property :ref:`TextureRepeat` **texture_repeat** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_texture_repeat**\ (\ value\: :ref:`TextureRepeat`\ ) - :ref:`TextureRepeat` **get_texture_repeat**\ (\ ) Режим повторения, используемый для отрисовки текстур этого **CanvasItem**. Он влияет на то, что происходит при выборке текстуры за пределами её границ, например, путём установки :ref:`Sprite2D.region_rect` большего размера, чем текстура, или назначения UV-точек :ref:`Polygon2D` за пределами текстуры. \ **Примечание:** :ref:`TextureRect` не подвержен влиянию :ref:`texture_repeat`, поскольку использует собственную реализацию повторения текстуры. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_top_level: .. rst-class:: classref-property :ref:`bool` **top_level** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_as_top_level**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_set_as_top_level**\ (\ ) Если ``true``, этот **CanvasItem** *не* унаследует свое преобразование от родительских **CanvasItem**. Его порядок отрисовки также будет изменен, чтобы он отрисовывался поверх других **CanvasItem**, у которых :ref:`top_level` не установлен на ``true``. **CanvasItem** будет фактически действовать так, как если бы он был помещен в качестве дочернего элемента пустого :ref:`Node`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_use_parent_material: .. rst-class:: classref-property :ref:`bool` **use_parent_material** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_use_parent_material**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_use_parent_material**\ (\ ) Если ``true``, то в качестве материала этого узла используется :ref:`material` родительского **CanvasItem**. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_visibility_layer: .. rst-class:: classref-property :ref:`int` **visibility_layer** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_visibility_layer**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_visibility_layer**\ (\ ) The rendering layer in which this **CanvasItem** is rendered by :ref:`Viewport` nodes. A :ref:`Viewport` will render a **CanvasItem** if it and all its parents share a layer with the :ref:`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` 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` with the canvas cull mask set to layer 1 or 2 (see :ref:`Viewport.canvas_cull_mask`). To ensure that both the parent and child are visible, the parent must have both layers 1 and 2, or the child must have :ref:`top_level` set to ``true``. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_visible: .. rst-class:: classref-property :ref:`bool` **visible** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_visible**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_visible**\ (\ ) Если ``true``, этот **CanvasItem** может быть нарисован. Будет ли этот **CanvasItem** нарисован на самом деле, зависит от видимости всех его предков **CanvasItem**. Другими словами: этот **CanvasItem** будет нарисован, когда :ref:`is_visible_in_tree()` вернет ``true`` и все предки **CanvasItem** разделят по крайней мере один :ref:`vision_layer` с этим **CanvasItem**. \ **Примечание:** Для элементов управления, которые наследуют :ref:`Popup`, правильный способ сделать их видимыми — вызвать вместо этого одну из нескольких функций ``popup*()``. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_y_sort_enabled: .. rst-class:: classref-property :ref:`bool` **y_sort_enabled** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_y_sort_enabled**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_y_sort_enabled**\ (\ ) Если ``true``, этот и дочерние узлы **CanvasItem** с более высокой позицией Y отображаются перед узлами с более низкой позицией Y. Если ``false``, этот и дочерние узлы **CanvasItem** отображаются нормально в порядке дерева сцены. При включенной сортировке Y на родительском узле ('A'), но отключенной на дочернем узле ('B'), дочерний узел ('B') сортируется, но его дочерние узлы ('C1', 'C2' и т. д.) отображаются вместе на той же позиции Y, что и дочерний узел ('B'). Это позволяет организовать порядок рендеринга сцены, не изменяя дерево сцены. Узлы сортируются относительно друг друга, только если они находятся на одном и том же :ref:`z_index`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_property_z_as_relative: .. rst-class:: classref-property :ref:`bool` **z_as_relative** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_z_as_relative**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_z_relative**\ (\ ) Если ``true``, конечный Z-индекс этого узла относится к Z-индексу его родителя. Например, если :ref:`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` **z_index** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_z_index**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_z_index**\ (\ ) Порядок, в котором отрисовывается этот узел. Узел с более высоким индексом Z будет отображаться поверх других. Должен быть между :ref:`RenderingServer.CANVAS_ITEM_Z_MIN` и :ref:`RenderingServer.CANVAS_ITEM_Z_MAX` (включительно). \ **Примечание:** Индекс Z **не** влияет на порядок обработки узлов **CanvasItem** или способ обработки событий ввода. Это особенно важно иметь в виду для узлов :ref:`Control`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания метода ------------------------------ .. _class_CanvasItem_private_method__draw: .. rst-class:: classref-method |void| **_draw**\ (\ ) |virtual| :ref:`🔗` Вызывается, когда **CanvasItem** был запрошен для перерисовки (после вызова :ref:`queue_redraw()`, вручную или движком). Соответствует уведомлению :ref:`NOTIFICATION_DRAW` в :ref:`Object._notification()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_animation_slice: .. rst-class:: classref-method |void| **draw_animation_slice**\ (\ animation_length\: :ref:`float`, slice_begin\: :ref:`float`, slice_end\: :ref:`float`, offset\: :ref:`float` = 0.0\ ) :ref:`🔗` Последующие команды рисования будут игнорироваться, если они не попадают в указанный фрагмент анимации. Это более быстрый способ реализовать анимацию, которая зацикливается на фоне, а не перерисовывается постоянно. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_arc: .. rst-class:: classref-method |void| **draw_arc**\ (\ center\: :ref:`Vector2`, radius\: :ref:`float`, start_angle\: :ref:`float`, end_angle\: :ref:`float`, point_count\: :ref:`int`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` 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()`. See also :ref:`draw_circle()`. If ``width`` is negative, it will be ignored and the arc will be drawn using :ref:`RenderingServer.PRIMITIVE_LINE_STRIP`. This means that when the CanvasItem is scaled, the arc will remain thin. If this behavior is not desired, then pass a positive ``width`` like ``1.0``. The arc is drawn from ``start_angle`` towards the value of ``end_angle`` so in clockwise direction if ``start_angle < end_angle`` and counter-clockwise otherwise. Passing the same angles but in reversed order will produce the same arc. If absolute difference of ``start_angle`` and ``end_angle`` is greater than :ref:`@GDScript.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`, pos\: :ref:`Vector2`, char\: :ref:`String`, font_size\: :ref:`int` = 16, modulate\: :ref:`Color` = Color(1, 1, 1, 1), oversampling\: :ref:`float` = 0.0\ ) |const| :ref:`🔗` Рисует первый символ строки, используя пользовательский шрифт. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра. ``pos`` определяется в локальном пространстве. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_char_outline: .. rst-class:: classref-method |void| **draw_char_outline**\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, char\: :ref:`String`, font_size\: :ref:`int` = 16, size\: :ref:`int` = -1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), oversampling\: :ref:`float` = 0.0\ ) |const| :ref:`🔗` Рисует контур первого символа строки, используя заданный шрифт. Если ``oversampling`` больше нуля, он используется как коэффициент передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра. ``pos`` определяется в локальном пространстве. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_circle: .. rst-class:: classref-method |void| **draw_circle**\ (\ position\: :ref:`Vector2`, radius\: :ref:`float`, color\: :ref:`Color`, filled\: :ref:`bool` = true, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Draws a circle, with ``position`` defined in local space. See also :ref:`draw_ellipse()`, :ref:`draw_arc()`, :ref:`draw_polyline()`, and :ref:`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`, color\: :ref:`Color`, uvs\: :ref:`PackedVector2Array` = PackedVector2Array(), texture\: :ref:`Texture2D` = null\ ) :ref:`🔗` Рисует цветной многоугольник из любого количества точек, выпуклых или вогнутых. Точки в массиве ``points`` определены в локальном пространстве. В отличие от :ref:`draw_polygon()`, для всего многоугольника должен быть указан один цвет. \ **Примечание:** Если вы часто перерисовываете один и тот же многоугольник с большим количеством вершин, рассмотрите возможность предварительного расчёта триангуляции с помощью :ref:`Geometry2D.triangulate_polygon()` и :ref:`draw_mesh()`, :ref:`draw_multimesh()` или :ref:`RenderingServer.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`, to\: :ref:`Vector2`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, dash\: :ref:`float` = 2.0, aligned\: :ref:`bool` = true, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует пунктирную линию от одной двухмерной точки к другой заданного цвета и ширины. Позиции ``from`` и ``to`` определяются в локальном пространстве. См. также :ref:`draw_line()`, :ref:`draw_multiline()` и :ref:`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`, major\: :ref:`float`, minor\: :ref:`float`, color\: :ref:`Color`, filled\: :ref:`bool` = true, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Draws an ellipse with semi-major axis ``major`` and semi-minor axis ``minor``. See also :ref:`draw_circle()`, :ref:`draw_ellipse_arc()`, :ref:`draw_polyline()`, and :ref:`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`, major\: :ref:`float`, minor\: :ref:`float`, start_angle\: :ref:`float`, end_angle\: :ref:`float`, point_count\: :ref:`int`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` 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()`. See also :ref:`draw_ellipse()`. If ``width`` is negative, it will be ignored and the arc will be drawn using :ref:`RenderingServer.PRIMITIVE_LINE_STRIP`. This means that when the CanvasItem is scaled, the arc will remain thin. If this behavior is not desired, then pass a positive ``width`` like ``1.0``. The arc is drawn from ``start_angle`` towards the value of ``end_angle`` so in clockwise direction if ``start_angle < end_angle`` and counter-clockwise otherwise. Passing the same angles but in reversed order will produce the same arc. If absolute difference of ``start_angle`` and ``end_angle`` is greater than :ref:`@GDScript.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:`🔗` После отправки всех фрагментов анимации через :ref:`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`, rect\: :ref:`Rect2`, src_rect\: :ref:`Rect2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1)\ ) :ref:`🔗` Рисует текстурированную прямоугольную область текстуры шрифта с субпиксельным сглаживанием ЖК-дисплея в заданной позиции, при необходимости модулируемую цветом. Параметр ``rect`` определяется в локальном пространстве. Текстура рисуется с помощью следующей операции смешивания, режим смешивания :ref:`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`, to\: :ref:`Vector2`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует линию от одной 2D точки к другой заданного цвета и ширины. При необходимости можно использовать сглаживание. Позиции ``from`` и ``to`` определяются в локальном пространстве. См. также :ref:`draw_dashed_line()`, :ref:`draw_multiline()` и :ref:`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`, texture\: :ref:`Texture2D`, transform\: :ref:`Transform2D` = Transform2D(1, 0, 0, 1, 0, 0), modulate\: :ref:`Color` = Color(1, 1, 1, 1)\ ) :ref:`🔗` Рисует :ref:`Mesh` в 2D, используя предоставленную текстуру. См. :ref:`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`, rect\: :ref:`Rect2`, src_rect\: :ref:`Rect2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1), outline\: :ref:`float` = 0.0, pixel_range\: :ref:`float` = 4.0, scale\: :ref:`float` = 1.0\ ) :ref:`🔗` Рисует текстурированную прямоугольную область многоканальной текстуры поля расстояний со знаком в заданной позиции, при необходимости модулируемую цветом. Параметр ``rect`` определяется в локальном пространстве. См. :ref:`FontFile.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`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует несколько разрозненных линий с одинаковыми параметрами ``width`` и ``color``. Каждая линия определяется двумя последовательными точками из массива ``points`` в локальном пространстве, т.е. i-й сегмент состоит из ``points[2 * i]``, ``points[2 * i + 1]`` конечных точек. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()`. Для рисования взаимосвязанных линий используйте :ref:`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`, colors\: :ref:`PackedColorArray`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует несколько разрозненных линий с равномерной ``width`` и посегментной раскраской. Каждый сегмент определяется двумя последовательными точками из массива ``points`` в локальном пространстве и соответствующим цветом из массива ``colors``, т.е. i-й сегмент состоит из ``points[2 * i]``, ``points[2 * i + 1]`` конечных точек и имеет цвет ``colors[i]``. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()`. Для рисования взаимосвязанных линий используйте :ref:`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`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, max_lines\: :ref:`int` = -1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| :ref:`🔗` Разбивает ``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`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, max_lines\: :ref:`int` = -1, size\: :ref:`int` = 1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), brk_flags\: |bitfield|\[:ref:`LineBreakFlag`\] = 3, justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| :ref:`🔗` Разбивает ``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`, texture\: :ref:`Texture2D`\ ) :ref:`🔗` Рисует :ref:`MultiMesh` в 2D с предоставленной текстурой. См. :ref:`MultiMeshInstance2D` для соответствующей документации. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_polygon: .. rst-class:: classref-method |void| **draw_polygon**\ (\ points\: :ref:`PackedVector2Array`, colors\: :ref:`PackedColorArray`, uvs\: :ref:`PackedVector2Array` = PackedVector2Array(), texture\: :ref:`Texture2D` = null\ ) :ref:`🔗` Рисует сплошной многоугольник из любого количества точек, выпуклый или вогнутый. В отличие от метода :ref:`draw_colored_polygon()`, цвет каждой точки можно менять индивидуально. Массив ``points`` определён в локальном пространстве. См. также методы :ref:`draw_polyline()` и :ref:`draw_polyline_colors()`. Если вам нужна большая гибкость (например, возможность использовать кости), используйте метод :ref:`RenderingServer.canvas_item_add_triangle_array()`. \ **Примечание:** Если вы часто перерисовываете один и тот же многоугольник с большим количеством вершин, рассмотрите возможность предварительного расчёта триангуляции с помощью метода :ref:`Geometry2D.triangulate_polygon()` и метода :ref:`draw_mesh()`, метода :ref:`draw_multimesh()` или метода :ref:`RenderingServer.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`, color\: :ref:`Color`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует соединённые отрезки линий с одинаковыми ``color`` и ``width`` и опциональным сглаживанием (поддерживается только для положительных значений ``width``). Массив ``points`` определён в локальном пространстве. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()`. Для рисования несвязанных линий используйте :ref:`draw_multiline()`. См. также :ref:`draw_polygon()`. Если ``width`` отрицательный, он будет проигнорирован, и ломаная линия будет отрисована с помощью :ref:`RenderingServer.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`, colors\: :ref:`PackedColorArray`, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует соединённые отрезки линий с равномерной шириной ``width``, поточечной раскраской и опциональным сглаживанием (поддерживается только для положительных значений ``width``). Цвета, назначенные точкам линии, соответствуют индексам между ``points`` и ``colors``, т.е. каждый отрезок линии заполняется градиентом между цветами конечных точек. Массив ``points`` определён в локальном пространстве. При рисовании большого количества линий это быстрее, чем использование отдельных вызовов :ref:`draw_line()`. Для рисования несвязанных линий используйте :ref:`draw_multiline_colors()`. См. также :ref:`draw_polygon()`. Если ``width`` отрицательный, он будет проигнорирован, и ломаная линия будет отрисована с помощью :ref:`RenderingServer.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`, colors\: :ref:`PackedColorArray`, uvs\: :ref:`PackedVector2Array`, texture\: :ref:`Texture2D` = null\ ) :ref:`🔗` Рисует пользовательский примитив. 1 точка для точки, 2 точки для линии, 3 точки для треугольника и 4 точки для четырёхугольника. Если указано 0 точек или более 4 точек, ничего не будет отрисовано и будет выведено сообщение об ошибке. Массив ``points`` определён в локальном пространстве. См. также :ref:`draw_line()`, :ref:`draw_polyline()`, :ref:`draw_polygon()` и :ref:`draw_rect()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_rect: .. rst-class:: classref-method |void| **draw_rect**\ (\ rect\: :ref:`Rect2`, color\: :ref:`Color`, filled\: :ref:`bool` = true, width\: :ref:`float` = -1.0, antialiased\: :ref:`bool` = false\ ) :ref:`🔗` Рисует прямоугольник. Если ``filled`` равен ``true``, прямоугольник будет залит указанным цветом ``color``. Если ``filled`` равен ``false``, прямоугольник будет нарисован обводкой с указанными ``color`` и ``width``. Параметр ``rect`` задаётся в локальном пространстве. См. также :ref:`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`, rotation\: :ref:`float` = 0.0, scale\: :ref:`Vector2` = Vector2(1, 1)\ ) :ref:`🔗` Задаёт пользовательское локальное преобразование для отрисовки через компоненты. Всё, что будет отрисовано после этого, будет преобразовано этим преобразованием. \ **Примечание:** :ref:`FontFile.oversampling` *не* учитывает ``scale``. Это означает, что масштабирование приведёт к размытию или пикселизации растровых (не MSDF) динамических шрифтов. Чтобы текст оставался чётким независимо от масштаба, можно включить рендеринг шрифтов MSDF, включив :ref:`ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field` (применяется только к шрифту проекта по умолчанию) или **Multichannel Signed Distance Field** в параметрах импорта DynamicFont для пользовательских шрифтов. Для системных шрифтов :ref:`SystemFont.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`\ ) :ref:`🔗` Задаёт локальное преобразование для рисования через матрицу. Всё, что будет отрисовано после этого, будет преобразовано этим преобразованием. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_string: .. rst-class:: classref-method |void| **draw_string**\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, modulate\: :ref:`Color` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| :ref:`🔗` Рисует ``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()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_string_outline: .. rst-class:: classref-method |void| **draw_string_outline**\ (\ font\: :ref:`Font`, pos\: :ref:`Vector2`, text\: :ref:`String`, alignment\: :ref:`HorizontalAlignment` = 0, width\: :ref:`float` = -1, font_size\: :ref:`int` = 16, size\: :ref:`int` = 1, modulate\: :ref:`Color` = Color(1, 1, 1, 1), justification_flags\: |bitfield|\[:ref:`JustificationFlag`\] = 3, direction\: :ref:`Direction` = 0, orientation\: :ref:`Orientation` = 0, oversampling\: :ref:`float` = 0.0\ ) |const| :ref:`🔗` Рисует контур ``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`, rect\: :ref:`Rect2`\ ) :ref:`🔗` Рисует стилизованный прямоугольник. Параметр ``rect`` определяется в локальном пространстве. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_texture: .. rst-class:: classref-method |void| **draw_texture**\ (\ texture\: :ref:`Texture2D`, position\: :ref:`Vector2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1)\ ) :ref:`🔗` Рисует текстуру в заданной позиции. Параметр ``position`` определяется в локальном пространстве. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_draw_texture_rect: .. rst-class:: classref-method |void| **draw_texture_rect**\ (\ texture\: :ref:`Texture2D`, rect\: :ref:`Rect2`, tile\: :ref:`bool`, modulate\: :ref:`Color` = Color(1, 1, 1, 1), transpose\: :ref:`bool` = false\ ) :ref:`🔗` Рисует текстурированный прямоугольник в заданной позиции, возможно, модулируемый цветом. Параметр ``rect`` определяется в локальном пространстве. Если ``transpose`` равен ``true``, координаты X и Y текстуры поменяются местами. См. также :ref:`draw_rect()` и :ref:`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`, rect\: :ref:`Rect2`, src_rect\: :ref:`Rect2`, modulate\: :ref:`Color` = Color(1, 1, 1, 1), transpose\: :ref:`bool` = false, clip_uv\: :ref:`bool` = true\ ) :ref:`🔗` Рисует текстурированный прямоугольник из области текстуры (указанной параметром ``src_rect``) в заданной точке локального пространства, при необходимости модулируя его цветом. Если параметр ``transpose`` равен ``true``, координаты X и Y текстуры поменяются местами. См. также :ref:`draw_texture_rect()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_force_update_transform: .. rst-class:: classref-method |void| **force_update_transform**\ (\ ) :ref:`🔗` Заставляет обновить преобразование узла. Не удается, если узел не находится внутри дерева. См. также :ref:`get_transform()`. \ **Примечание:** Из соображений производительности изменения преобразования обычно накапливаются и применяются *один раз* в конце кадра. Обновление также распространяется на дочерние элементы **CanvasItem**. Поэтому используйте этот метод только тогда, когда вам нужно актуальное преобразование (например, во время физических операций). .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_canvas: .. rst-class:: classref-method :ref:`RID` **get_canvas**\ (\ ) |const| :ref:`🔗` Возвращает :ref:`RID` холста :ref:`World2D`, на котором зарегистрирован этот узел, используемый в :ref:`RenderingServer`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_canvas_item: .. rst-class:: classref-method :ref:`RID` **get_canvas_item**\ (\ ) |const| :ref:`🔗` Возвращает внутренний элемент холста :ref:`RID`, используемый в :ref:`RenderingServer` для этого узла. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_canvas_layer_node: .. rst-class:: classref-method :ref:`CanvasLayer` **get_canvas_layer_node**\ (\ ) |const| :ref:`🔗` Возвращает :ref:`CanvasLayer`, содержащий этот узел, или ``null``, если узел не находится ни в одном :ref:`CanvasLayer`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_canvas_transform: .. rst-class:: classref-method :ref:`Transform2D` **get_canvas_transform**\ (\ ) |const| :ref:`🔗` Возвращает преобразование этого узла, преобразованное из зарегистрированной системы координат холста в систему координат его области просмотра. См. также :ref:`Node.get_viewport()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_global_mouse_position: .. rst-class:: classref-method :ref:`Vector2` **get_global_mouse_position**\ (\ ) |const| :ref:`🔗` Возвращает глобальную позицию курсора мыши относительно :ref:`CanvasLayer`, содержащего этот узел. \ **Примечание:** Для координат экранного пространства (например, при использовании невстроенного :ref:`Popup`) можно использовать :ref:`DisplayServer.mouse_get_position()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_global_transform: .. rst-class:: classref-method :ref:`Transform2D` **get_global_transform**\ (\ ) |const| :ref:`🔗` Возвращает глобальную матрицу преобразования этого элемента, т. е. объединенное преобразование до самого верхнего узла **CanvasItem**. Самый верхний элемент — это **CanvasItem**, у которого либо нет родителя, либо есть родитель, отличный от **CanvasItem**, либо включен :ref:`top_level`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_global_transform_with_canvas: .. rst-class:: classref-method :ref:`Transform2D` **get_global_transform_with_canvas**\ (\ ) |const| :ref:`🔗` Возвращает преобразование из локальной системы координат этого **CanvasItem** в систему координат :ref:`Viewport`-ов. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_instance_shader_parameter: .. rst-class:: classref-method :ref:`Variant` **get_instance_shader_parameter**\ (\ name\: :ref:`StringName`\ ) |const| :ref:`🔗` Получить значение параметра шейдера, установленное для данного экземпляра. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_local_mouse_position: .. rst-class:: classref-method :ref:`Vector2` **get_local_mouse_position**\ (\ ) |const| :ref:`🔗` Возвращает положение мыши в этом **CanvasItem**, используя локальную систему координат этого **CanvasItem**. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_screen_transform: .. rst-class:: classref-method :ref:`Transform2D` **get_screen_transform**\ (\ ) |const| :ref:`🔗` 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()` if the window is embedded (see :ref:`Viewport.gui_embed_subwindows`). .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_transform: .. rst-class:: classref-method :ref:`Transform2D` **get_transform**\ (\ ) |const| :ref:`🔗` Возвращает матрицу преобразования этого **CanvasItem**. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_viewport_rect: .. rst-class:: classref-method :ref:`Rect2` **get_viewport_rect**\ (\ ) |const| :ref:`🔗` Возвращает границы области просмотра этого узла как :ref:`Rect2`. См. также :ref:`Node.get_viewport()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_viewport_transform: .. rst-class:: classref-method :ref:`Transform2D` **get_viewport_transform**\ (\ ) |const| :ref:`🔗` Возвращает преобразование этого узла, преобразованное из зарегистрированной системы координат холста в систему координат его вьюпорта-эмбеддера. См. также :ref:`Viewport.get_final_transform()` и :ref:`Node.get_viewport()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_visibility_layer_bit: .. rst-class:: classref-method :ref:`bool` **get_visibility_layer_bit**\ (\ layer\: :ref:`int`\ ) |const| :ref:`🔗` Возвращает ``true``, если слой с указанным индексом установлен в :ref:`visible_layer`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_get_world_2d: .. rst-class:: classref-method :ref:`World2D` **get_world_2d**\ (\ ) |const| :ref:`🔗` Возвращает :ref:`World2D`, в котором зарегистрирован этот узел. Обычно это то же самое, что и область просмотра этого узла (см. :ref:`Node.get_viewport()` и :ref:`Viewport.find_world_2d()`). .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_hide: .. rst-class:: classref-method |void| **hide**\ (\ ) :ref:`🔗` Скрыть **CanvasItem**, если он в данный момент виден. Это эквивалентно установке :ref:`visible` на ``false``. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_is_local_transform_notification_enabled: .. rst-class:: classref-method :ref:`bool` **is_local_transform_notification_enabled**\ (\ ) |const| :ref:`🔗` Возвращает ``true``, если узел получает :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED` всякий раз, когда изменяется его локальное преобразование. Это включается с помощью :ref:`set_notify_local_transform()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_is_transform_notification_enabled: .. rst-class:: classref-method :ref:`bool` **is_transform_notification_enabled**\ (\ ) |const| :ref:`🔗` Возвращает ``true``, если узел получает :ref:`NOTIFICATION_TRANSFORM_CHANGED` всякий раз, когда изменяется его глобальное преобразование. Это включается с помощью :ref:`set_notify_transform()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_is_visible_in_tree: .. rst-class:: classref-method :ref:`bool` **is_visible_in_tree**\ (\ ) |const| :ref:`🔗` Возвращает ``true``, если узел присутствует в :ref:`SceneTree`, его свойство :ref:`visible` равно ``true`` и все его предки также видны. Если какой-либо предок скрыт, этот узел не будет виден в дереве сцены и, следовательно, не будет отрисован (см. :ref:`_draw()`). Видимость проверяется только в родительских узлах, которые наследуются от **CanvasItem**, :ref:`CanvasLayer` и :ref:`Window`. Если родительский узел имеет любой другой тип (например, :ref:`Node`, :ref:`AnimationPlayer` или :ref:`Node3D`), он считается видимым. \ **Примечание:** Этот метод не учитывает :ref:`visible_layer`, поэтому даже если этот метод возвращает ``true``, узел может оказаться неотрисованным. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_make_canvas_position_local: .. rst-class:: classref-method :ref:`Vector2` **make_canvas_position_local**\ (\ viewport_point\: :ref:`Vector2`\ ) |const| :ref:`🔗` Преобразует ``viewport_point`` из координат области просмотра в локальные координаты этого узла. Для противоположной операции используйте :ref:`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` **make_input_local**\ (\ event\: :ref:`InputEvent`\ ) |const| :ref:`🔗` Возвращает копию заданного ``event`` с его координатами, преобразованными из глобального пространства в локальное пространство этого **CanvasItem**. Если это невозможно, возвращает тот же :ref:`InputEvent` без изменений. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_move_to_front: .. rst-class:: classref-method |void| **move_to_front**\ (\ ) :ref:`🔗` Перемещает этот узел ниже его братьев и сестер, обычно заставляя узел рисоваться поверх своих братьев и сестер. Ничего не делает, если у этого узла нет родителя. См. также :ref:`Node.move_child()`. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_queue_redraw: .. rst-class:: classref-method |void| **queue_redraw**\ (\ ) :ref:`🔗` Ставит в очередь **CanvasItem** для перерисовки. Во время простоя, если **CanvasItem** виден, отправляется :ref:`NOTIFICATION_DRAW` и вызывается :ref:`_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`, value\: :ref:`Variant`\ ) :ref:`🔗` Установите значение шейдерной униформы только для этого экземпляра (`per-instance uniform <../tutorials/shaders/shader_reference/shading_language.html#per-instance-uniforms>`__). См. также :ref:`ShaderMaterial.set_shader_parameter()`, чтобы назначить униформу для всех экземпляров, использующих один и тот же :ref:`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`\ ) :ref:`🔗` Если ``true``, узел будет получать :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED` всякий раз, когда его локальное преобразование изменяется. \ **Примечание:** Многие элементы холста, такие как :ref:`Bone2D` или :ref:`CollisionShape2D`, автоматически включают это для правильной работы. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_set_notify_transform: .. rst-class:: classref-method |void| **set_notify_transform**\ (\ enable\: :ref:`bool`\ ) :ref:`🔗` If ``true``, the node will receive :ref:`NOTIFICATION_TRANSFORM_CHANGED` whenever its global transform changes. \ **Note:** Many canvas items such as :ref:`Camera2D` or :ref:`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`, enabled\: :ref:`bool`\ ) :ref:`🔗` Установить/сбросить отдельные биты на слое видимости рендеринга. Это упрощает редактирование слоя видимости этого **CanvasItem**. .. rst-class:: classref-item-separator ---- .. _class_CanvasItem_method_show: .. rst-class:: classref-method |void| **show**\ (\ ) :ref:`🔗` Показывать **CanvasItem**, если он в данный момент скрыт. Это эквивалентно установке :ref:`visible` на ``true``. \ **Примечание:** Для элементов управления, которые наследуют :ref:`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 (Нет возвращаемого значения.)`