Files
godot-docs-l10n/classes/ru/class_shape2d.rst

190 lines
17 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

:github_url: hide
.. _class_Shape2D:
Shape2D
=======
**Наследует:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**Наследуется от:** :ref:`CapsuleShape2D<class_CapsuleShape2D>`, :ref:`CircleShape2D<class_CircleShape2D>`, :ref:`ConcavePolygonShape2D<class_ConcavePolygonShape2D>`, :ref:`ConvexPolygonShape2D<class_ConvexPolygonShape2D>`, :ref:`RectangleShape2D<class_RectangleShape2D>`, :ref:`SegmentShape2D<class_SegmentShape2D>`, :ref:`SeparationRayShape2D<class_SeparationRayShape2D>`, :ref:`WorldBoundaryShape2D<class_WorldBoundaryShape2D>`
Абстрактный базовый класс для двумерных фигур, используемых для физических столкновений.
.. rst-class:: classref-introduction-group
Описание
----------------
Абстрактный базовый класс для всех 2D-фигур, предназначенный для использования в физике.
\ **Производительность:** Примитивные формы, особенно :ref:`CircleShape2D<class_CircleShape2D>`, быстро проверяют столкновения. :ref:`ConvexPolygonShape2D<class_ConvexPolygonShape2D>` медленнее, а :ref:`ConcavePolygonShape2D<class_ConcavePolygonShape2D>` — самый медленный.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- :doc:`Введение в физику <../tutorials/physics/physics_introduction>`
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+---------------------------+----------------------------------------------------------------------+---------+
| :ref:`float<class_float>` | :ref:`custom_solver_bias<class_Shape2D_property_custom_solver_bias>` | ``0.0`` |
+---------------------------+----------------------------------------------------------------------+---------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`collide<class_Shape2D_method_collide>`\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`\ ) |
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`collide_and_get_contacts<class_Shape2D_method_collide_and_get_contacts>`\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`\ ) |
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`collide_with_motion<class_Shape2D_method_collide_with_motion>`\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, local_motion\: :ref:`Vector2<class_Vector2>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`, shape_motion\: :ref:`Vector2<class_Vector2>`\ ) |
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`collide_with_motion_and_get_contacts<class_Shape2D_method_collide_with_motion_and_get_contacts>`\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, local_motion\: :ref:`Vector2<class_Vector2>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`, shape_motion\: :ref:`Vector2<class_Vector2>`\ ) |
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`draw<class_Shape2D_method_draw>`\ (\ canvas_item\: :ref:`RID<class_RID>`, color\: :ref:`Color<class_Color>`\ ) |
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Rect2<class_Rect2>` | :ref:`get_rect<class_Shape2D_method_get_rect>`\ (\ ) |const| |
+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_Shape2D_property_custom_solver_bias:
.. rst-class:: classref-property
:ref:`float<class_float>` **custom_solver_bias** = ``0.0`` :ref:`🔗<class_Shape2D_property_custom_solver_bias>`
.. rst-class:: classref-property-setget
- |void| **set_custom_solver_bias**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_custom_solver_bias**\ (\ )
Пользовательское смещение решателя формы. Определяет, насколько тела реагируют, чтобы обеспечить разделение контактов, когда задействована эта форма.
Если установлено значение ``0``, используется значение по умолчанию из :ref:`ProjectSettings.physics/2d/solver/default_contact_bias<class_ProjectSettings_property_physics/2d/solver/default_contact_bias>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_Shape2D_method_collide:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **collide**\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`\ ) :ref:`🔗<class_Shape2D_method_collide>`
Возвращает ``true``, если эта фигура сталкивается с другой.
Для этого метода требуется матрица преобразования для этой фигуры (``local_xform``), фигура для проверки столкновений (``with_shape``) и матрица преобразования этой фигуры (``shape_xform``).
.. rst-class:: classref-item-separator
----
.. _class_Shape2D_method_collide_and_get_contacts:
.. rst-class:: classref-method
:ref:`PackedVector2Array<class_PackedVector2Array>` **collide_and_get_contacts**\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`\ ) :ref:`🔗<class_Shape2D_method_collide_and_get_contacts>`
Возвращает список пар точек контакта, где эта фигура касается с другой.
Если столкновений нет, возвращаемый список пуст. В противном случае возвращаемый список содержит точки контакта, организованные парами, с записями, чередующимися между точками на границе этой фигуры и точками на границе ``with_shape``.
Пара столкновений A, и B может использоваться для вычисления нормали столкновения с помощью ``(B - A).normalized()`` и глубины столкновения с помощью ``(B - A).length()``. Эта информация обычно используется для разделения фигур, особенно в решение столкновений.
Для этого метода требуется матрица преобразования для этой фигуры (``local_xform``), фигура для проверки столкновений (``with_shape``) и матрица преобразования этой фигуры (``shape_xform``).
.. rst-class:: classref-item-separator
----
.. _class_Shape2D_method_collide_with_motion:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **collide_with_motion**\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, local_motion\: :ref:`Vector2<class_Vector2>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`, shape_motion\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_Shape2D_method_collide_with_motion>`
Возвращает, будет ли эта фигура сталкиваться с другой, если было применено заданное движение.
Для этого метода требуется матрица преобразования для этой фигуры (``local_xform``), движение для проверки на этой фигуре (``local_motion``), фигура для проверки столкновений с (``with_shape``), матрица преобразования этой фигуры (``shape_xform``) и движение для проверки на другом объекте (``shape_motion``).
.. rst-class:: classref-item-separator
----
.. _class_Shape2D_method_collide_with_motion_and_get_contacts:
.. rst-class:: classref-method
:ref:`PackedVector2Array<class_PackedVector2Array>` **collide_with_motion_and_get_contacts**\ (\ local_xform\: :ref:`Transform2D<class_Transform2D>`, local_motion\: :ref:`Vector2<class_Vector2>`, with_shape\: :ref:`Shape2D<class_Shape2D>`, shape_xform\: :ref:`Transform2D<class_Transform2D>`, shape_motion\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_Shape2D_method_collide_with_motion_and_get_contacts>`
Возвращает список пар точек контакта, где данная фигура соприкоснется с другой, если будет применено заданное движение.
Если бы не было столкновений, возвращаемый список был бы пуст. В противном случае возвращаемый список содержит точки контакта, организованные парами, с записями, чередующимися между точками на границе этой формы и точками на границе ``with_shape``.
Пару столкновений A, B можно использовать для расчета нормали столкновения с помощью ``(B - A).normalized()``, а глубину столкновения с помощью ``(B - A).length()``. Эта информация обычно используется для разделения фигур, особенно в программах решения столкновений.
Для этого метода требуется матрица преобразования для этой формы (``local_xform``), движение для проверки этой формы (``local_motion``), форма для проверки столкновений с ней (``with_shape``), матрица преобразования этой формы (``shape_xform``) и движение для проверки другого объекта (``shape_motion``).
.. rst-class:: classref-item-separator
----
.. _class_Shape2D_method_draw:
.. rst-class:: classref-method
|void| **draw**\ (\ canvas_item\: :ref:`RID<class_RID>`, color\: :ref:`Color<class_Color>`\ ) :ref:`🔗<class_Shape2D_method_draw>`
Рисует сплошную фигуру на :ref:`CanvasItem<class_CanvasItem>` с API :ref:`RenderingServer<class_RenderingServer>`, заполненную указанным ``color``. Точный метод рисования специфичен для каждой фигуры и не может быть настроен.
.. rst-class:: classref-item-separator
----
.. _class_Shape2D_method_get_rect:
.. rst-class:: classref-method
:ref:`Rect2<class_Rect2>` **get_rect**\ (\ ) |const| :ref:`🔗<class_Shape2D_method_get_rect>`
Возвращает :ref:`Rect2<class_Rect2>`, представляющий границу фигуры.
.. |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 (Нет возвращаемого значения.)`