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

2636 lines
221 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_PhysicsServer2D:
PhysicsServer2D
===============
**Наследует:** :ref:`Object<class_Object>`
**Наследуется от:** :ref:`PhysicsServer2DExtension<class_PhysicsServer2DExtension>`
Серверный интерфейс для низкоуровневого доступа к 2D-физике.
.. rst-class:: classref-introduction-group
Описание
----------------
PhysicsServer2D — сервер, отвечающий за всю 2D-физику. Он может напрямую создавать и управлять всеми физическими объектами:
- *пространство* — это самодостаточный мир для физического моделирования. Оно содержит тела, области и сочленения. Его состояние может быть запрошено для получения информации о столкновениях и пересечениях, и можно изменить несколько параметров моделирования.
- *форма* — это геометрическая форма, такая как круг, прямоугольник, капсула или многоугольник. Ее можно использовать для обнаружения столкновений, добавив ее к телу/области, возможно, с дополнительным преобразованием относительно начала координат тела/области. Тела/области могут иметь несколько (преобразованных) форм, добавленных к ним, и одна форма может быть добавлена к телам/областям несколько раз с различными локальными преобразованиями.
- *тело* — это физический объект, который может находиться в статическом, кинематическом или жестком режиме. Его состояние (такое как положение и скорость) можно запрашивать и обновлять. Обратный вызов интеграции силы может быть установлен для настройки физики тела.
- *область* - это область в пространстве, которая может использоваться для обнаружения тел и областей, входящих и выходящих из нее. Обратный вызов мониторинга тела может быть установлен для сообщения о входе/выходе форм тела, и аналогичным образом может быть установлен обратный вызов мониторинга области. Гравитация и демпфирование могут быть переопределены в области путем установки параметров области.
- *соединение* - это ограничение, либо между двумя телами, либо на одном теле относительно точки. Такие параметры, как смещение сочленения и остаточная длина пружинного соединения, могут быть скорректированы.
Физические объекты в **PhysicsServer2D** могут быть созданы и изменены независимо; они не должны быть привязаны к узлам в дереве сцены.
\ **Примечание:** Все узлы 2D-физики используют физический сервер внутренне. Добавление физического узла в дерево сцены приведет к созданию соответствующего физического объекта на физическом сервере. Узел твердого тела регистрирует обратный вызов, который обновляет преобразование узла с преобразованием соответствующего объекта тела на физическом сервере (каждое обновление физики). Узел области регистрирует обратный вызов, чтобы информировать узел области о перекрытиях с соответствующим объектом области на физическом сервере. Узел raycast запрашивает прямое состояние соответствующего пространства на физическом сервере.
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_add_shape<class_PhysicsServer2D_method_area_add_shape>`\ (\ area\: :ref:`RID<class_RID>`, shape\: :ref:`RID<class_RID>`, transform\: :ref:`Transform2D<class_Transform2D>` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool<class_bool>` = false\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_attach_canvas_instance_id<class_PhysicsServer2D_method_area_attach_canvas_instance_id>`\ (\ area\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_attach_object_instance_id<class_PhysicsServer2D_method_area_attach_object_instance_id>`\ (\ area\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_clear_shapes<class_PhysicsServer2D_method_area_clear_shapes>`\ (\ area\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`area_create<class_PhysicsServer2D_method_area_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`area_get_canvas_instance_id<class_PhysicsServer2D_method_area_get_canvas_instance_id>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`area_get_collision_layer<class_PhysicsServer2D_method_area_get_collision_layer>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`area_get_collision_mask<class_PhysicsServer2D_method_area_get_collision_mask>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`area_get_object_instance_id<class_PhysicsServer2D_method_area_get_object_instance_id>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`area_get_param<class_PhysicsServer2D_method_area_get_param>`\ (\ area\: :ref:`RID<class_RID>`, param\: :ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`area_get_shape<class_PhysicsServer2D_method_area_get_shape>`\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`area_get_shape_count<class_PhysicsServer2D_method_area_get_shape_count>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`area_get_shape_transform<class_PhysicsServer2D_method_area_get_shape_transform>`\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`area_get_space<class_PhysicsServer2D_method_area_get_space>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`area_get_transform<class_PhysicsServer2D_method_area_get_transform>`\ (\ area\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_remove_shape<class_PhysicsServer2D_method_area_remove_shape>`\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_area_monitor_callback<class_PhysicsServer2D_method_area_set_area_monitor_callback>`\ (\ area\: :ref:`RID<class_RID>`, callback\: :ref:`Callable<class_Callable>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_collision_layer<class_PhysicsServer2D_method_area_set_collision_layer>`\ (\ area\: :ref:`RID<class_RID>`, layer\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_collision_mask<class_PhysicsServer2D_method_area_set_collision_mask>`\ (\ area\: :ref:`RID<class_RID>`, mask\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_monitor_callback<class_PhysicsServer2D_method_area_set_monitor_callback>`\ (\ area\: :ref:`RID<class_RID>`, callback\: :ref:`Callable<class_Callable>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_monitorable<class_PhysicsServer2D_method_area_set_monitorable>`\ (\ area\: :ref:`RID<class_RID>`, monitorable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_param<class_PhysicsServer2D_method_area_set_param>`\ (\ area\: :ref:`RID<class_RID>`, param\: :ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>`, value\: :ref:`Variant<class_Variant>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_shape<class_PhysicsServer2D_method_area_set_shape>`\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, shape\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_shape_disabled<class_PhysicsServer2D_method_area_set_shape_disabled>`\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, disabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_shape_transform<class_PhysicsServer2D_method_area_set_shape_transform>`\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, transform\: :ref:`Transform2D<class_Transform2D>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_space<class_PhysicsServer2D_method_area_set_space>`\ (\ area\: :ref:`RID<class_RID>`, space\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`area_set_transform<class_PhysicsServer2D_method_area_set_transform>`\ (\ area\: :ref:`RID<class_RID>`, transform\: :ref:`Transform2D<class_Transform2D>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_add_collision_exception<class_PhysicsServer2D_method_body_add_collision_exception>`\ (\ body\: :ref:`RID<class_RID>`, excepted_body\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_add_constant_central_force<class_PhysicsServer2D_method_body_add_constant_central_force>`\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_add_constant_force<class_PhysicsServer2D_method_body_add_constant_force>`\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`, position\: :ref:`Vector2<class_Vector2>` = Vector2(0, 0)\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_add_constant_torque<class_PhysicsServer2D_method_body_add_constant_torque>`\ (\ body\: :ref:`RID<class_RID>`, torque\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_add_shape<class_PhysicsServer2D_method_body_add_shape>`\ (\ body\: :ref:`RID<class_RID>`, shape\: :ref:`RID<class_RID>`, transform\: :ref:`Transform2D<class_Transform2D>` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool<class_bool>` = false\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_apply_central_force<class_PhysicsServer2D_method_body_apply_central_force>`\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_apply_central_impulse<class_PhysicsServer2D_method_body_apply_central_impulse>`\ (\ body\: :ref:`RID<class_RID>`, impulse\: :ref:`Vector2<class_Vector2>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_apply_force<class_PhysicsServer2D_method_body_apply_force>`\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`, position\: :ref:`Vector2<class_Vector2>` = Vector2(0, 0)\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_apply_impulse<class_PhysicsServer2D_method_body_apply_impulse>`\ (\ body\: :ref:`RID<class_RID>`, impulse\: :ref:`Vector2<class_Vector2>`, position\: :ref:`Vector2<class_Vector2>` = Vector2(0, 0)\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_apply_torque<class_PhysicsServer2D_method_body_apply_torque>`\ (\ body\: :ref:`RID<class_RID>`, torque\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_apply_torque_impulse<class_PhysicsServer2D_method_body_apply_torque_impulse>`\ (\ body\: :ref:`RID<class_RID>`, impulse\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_attach_canvas_instance_id<class_PhysicsServer2D_method_body_attach_canvas_instance_id>`\ (\ body\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_attach_object_instance_id<class_PhysicsServer2D_method_body_attach_object_instance_id>`\ (\ body\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_clear_shapes<class_PhysicsServer2D_method_body_clear_shapes>`\ (\ body\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`body_create<class_PhysicsServer2D_method_body_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`body_get_canvas_instance_id<class_PhysicsServer2D_method_body_get_canvas_instance_id>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`body_get_collision_layer<class_PhysicsServer2D_method_body_get_collision_layer>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`body_get_collision_mask<class_PhysicsServer2D_method_body_get_collision_mask>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`body_get_collision_priority<class_PhysicsServer2D_method_body_get_collision_priority>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`body_get_constant_force<class_PhysicsServer2D_method_body_get_constant_force>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`body_get_constant_torque<class_PhysicsServer2D_method_body_get_constant_torque>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`CCDMode<enum_PhysicsServer2D_CCDMode>` | :ref:`body_get_continuous_collision_detection_mode<class_PhysicsServer2D_method_body_get_continuous_collision_detection_mode>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PhysicsDirectBodyState2D<class_PhysicsDirectBodyState2D>` | :ref:`body_get_direct_state<class_PhysicsServer2D_method_body_get_direct_state>`\ (\ body\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`body_get_max_contacts_reported<class_PhysicsServer2D_method_body_get_max_contacts_reported>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`BodyMode<enum_PhysicsServer2D_BodyMode>` | :ref:`body_get_mode<class_PhysicsServer2D_method_body_get_mode>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`body_get_object_instance_id<class_PhysicsServer2D_method_body_get_object_instance_id>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`body_get_param<class_PhysicsServer2D_method_body_get_param>`\ (\ body\: :ref:`RID<class_RID>`, param\: :ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`body_get_shape<class_PhysicsServer2D_method_body_get_shape>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`body_get_shape_count<class_PhysicsServer2D_method_body_get_shape_count>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform2D<class_Transform2D>` | :ref:`body_get_shape_transform<class_PhysicsServer2D_method_body_get_shape_transform>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`body_get_space<class_PhysicsServer2D_method_body_get_space>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`body_get_state<class_PhysicsServer2D_method_body_get_state>`\ (\ body\: :ref:`RID<class_RID>`, state\: :ref:`BodyState<enum_PhysicsServer2D_BodyState>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`body_is_omitting_force_integration<class_PhysicsServer2D_method_body_is_omitting_force_integration>`\ (\ body\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_remove_collision_exception<class_PhysicsServer2D_method_body_remove_collision_exception>`\ (\ body\: :ref:`RID<class_RID>`, excepted_body\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_remove_shape<class_PhysicsServer2D_method_body_remove_shape>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_reset_mass_properties<class_PhysicsServer2D_method_body_reset_mass_properties>`\ (\ body\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_axis_velocity<class_PhysicsServer2D_method_body_set_axis_velocity>`\ (\ body\: :ref:`RID<class_RID>`, axis_velocity\: :ref:`Vector2<class_Vector2>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_collision_layer<class_PhysicsServer2D_method_body_set_collision_layer>`\ (\ body\: :ref:`RID<class_RID>`, layer\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_collision_mask<class_PhysicsServer2D_method_body_set_collision_mask>`\ (\ body\: :ref:`RID<class_RID>`, mask\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_collision_priority<class_PhysicsServer2D_method_body_set_collision_priority>`\ (\ body\: :ref:`RID<class_RID>`, priority\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_constant_force<class_PhysicsServer2D_method_body_set_constant_force>`\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_constant_torque<class_PhysicsServer2D_method_body_set_constant_torque>`\ (\ body\: :ref:`RID<class_RID>`, torque\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_continuous_collision_detection_mode<class_PhysicsServer2D_method_body_set_continuous_collision_detection_mode>`\ (\ body\: :ref:`RID<class_RID>`, mode\: :ref:`CCDMode<enum_PhysicsServer2D_CCDMode>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_force_integration_callback<class_PhysicsServer2D_method_body_set_force_integration_callback>`\ (\ body\: :ref:`RID<class_RID>`, callable\: :ref:`Callable<class_Callable>`, userdata\: :ref:`Variant<class_Variant>` = null\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_max_contacts_reported<class_PhysicsServer2D_method_body_set_max_contacts_reported>`\ (\ body\: :ref:`RID<class_RID>`, amount\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_mode<class_PhysicsServer2D_method_body_set_mode>`\ (\ body\: :ref:`RID<class_RID>`, mode\: :ref:`BodyMode<enum_PhysicsServer2D_BodyMode>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_omit_force_integration<class_PhysicsServer2D_method_body_set_omit_force_integration>`\ (\ body\: :ref:`RID<class_RID>`, enable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_param<class_PhysicsServer2D_method_body_set_param>`\ (\ body\: :ref:`RID<class_RID>`, param\: :ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>`, value\: :ref:`Variant<class_Variant>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_shape<class_PhysicsServer2D_method_body_set_shape>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, shape\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_shape_as_one_way_collision<class_PhysicsServer2D_method_body_set_shape_as_one_way_collision>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`, margin\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_shape_disabled<class_PhysicsServer2D_method_body_set_shape_disabled>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, disabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_shape_transform<class_PhysicsServer2D_method_body_set_shape_transform>`\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, transform\: :ref:`Transform2D<class_Transform2D>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_space<class_PhysicsServer2D_method_body_set_space>`\ (\ body\: :ref:`RID<class_RID>`, space\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_state<class_PhysicsServer2D_method_body_set_state>`\ (\ body\: :ref:`RID<class_RID>`, state\: :ref:`BodyState<enum_PhysicsServer2D_BodyState>`, value\: :ref:`Variant<class_Variant>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`body_set_state_sync_callback<class_PhysicsServer2D_method_body_set_state_sync_callback>`\ (\ body\: :ref:`RID<class_RID>`, callable\: :ref:`Callable<class_Callable>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`body_test_motion<class_PhysicsServer2D_method_body_test_motion>`\ (\ body\: :ref:`RID<class_RID>`, parameters\: :ref:`PhysicsTestMotionParameters2D<class_PhysicsTestMotionParameters2D>`, result\: :ref:`PhysicsTestMotionResult2D<class_PhysicsTestMotionResult2D>` = null\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`capsule_shape_create<class_PhysicsServer2D_method_capsule_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`circle_shape_create<class_PhysicsServer2D_method_circle_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`concave_polygon_shape_create<class_PhysicsServer2D_method_concave_polygon_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`convex_polygon_shape_create<class_PhysicsServer2D_method_convex_polygon_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`damped_spring_joint_get_param<class_PhysicsServer2D_method_damped_spring_joint_get_param>`\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`damped_spring_joint_set_param<class_PhysicsServer2D_method_damped_spring_joint_set_param>`\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>`, value\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`free_rid<class_PhysicsServer2D_method_free_rid>`\ (\ rid\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_process_info<class_PhysicsServer2D_method_get_process_info>`\ (\ process_info\: :ref:`ProcessInfo<enum_PhysicsServer2D_ProcessInfo>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`joint_clear<class_PhysicsServer2D_method_joint_clear>`\ (\ joint\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`joint_create<class_PhysicsServer2D_method_joint_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`joint_disable_collisions_between_bodies<class_PhysicsServer2D_method_joint_disable_collisions_between_bodies>`\ (\ joint\: :ref:`RID<class_RID>`, disable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`joint_get_param<class_PhysicsServer2D_method_joint_get_param>`\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`JointParam<enum_PhysicsServer2D_JointParam>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`JointType<enum_PhysicsServer2D_JointType>` | :ref:`joint_get_type<class_PhysicsServer2D_method_joint_get_type>`\ (\ joint\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`joint_is_disabled_collisions_between_bodies<class_PhysicsServer2D_method_joint_is_disabled_collisions_between_bodies>`\ (\ joint\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`joint_make_damped_spring<class_PhysicsServer2D_method_joint_make_damped_spring>`\ (\ joint\: :ref:`RID<class_RID>`, anchor_a\: :ref:`Vector2<class_Vector2>`, anchor_b\: :ref:`Vector2<class_Vector2>`, body_a\: :ref:`RID<class_RID>`, body_b\: :ref:`RID<class_RID>` = RID()\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`joint_make_groove<class_PhysicsServer2D_method_joint_make_groove>`\ (\ joint\: :ref:`RID<class_RID>`, groove1_a\: :ref:`Vector2<class_Vector2>`, groove2_a\: :ref:`Vector2<class_Vector2>`, anchor_b\: :ref:`Vector2<class_Vector2>`, body_a\: :ref:`RID<class_RID>` = RID(), body_b\: :ref:`RID<class_RID>` = RID()\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`joint_make_pin<class_PhysicsServer2D_method_joint_make_pin>`\ (\ joint\: :ref:`RID<class_RID>`, anchor\: :ref:`Vector2<class_Vector2>`, body_a\: :ref:`RID<class_RID>`, body_b\: :ref:`RID<class_RID>` = RID()\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`joint_set_param<class_PhysicsServer2D_method_joint_set_param>`\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`JointParam<enum_PhysicsServer2D_JointParam>`, value\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`pin_joint_get_flag<class_PhysicsServer2D_method_pin_joint_get_flag>`\ (\ joint\: :ref:`RID<class_RID>`, flag\: :ref:`PinJointFlag<enum_PhysicsServer2D_PinJointFlag>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`pin_joint_get_param<class_PhysicsServer2D_method_pin_joint_get_param>`\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`pin_joint_set_flag<class_PhysicsServer2D_method_pin_joint_set_flag>`\ (\ joint\: :ref:`RID<class_RID>`, flag\: :ref:`PinJointFlag<enum_PhysicsServer2D_PinJointFlag>`, enabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`pin_joint_set_param<class_PhysicsServer2D_method_pin_joint_set_param>`\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>`, value\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`rectangle_shape_create<class_PhysicsServer2D_method_rectangle_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`segment_shape_create<class_PhysicsServer2D_method_segment_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`separation_ray_shape_create<class_PhysicsServer2D_method_separation_ray_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_active<class_PhysicsServer2D_method_set_active>`\ (\ active\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`shape_get_data<class_PhysicsServer2D_method_shape_get_data>`\ (\ shape\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` | :ref:`shape_get_type<class_PhysicsServer2D_method_shape_get_type>`\ (\ shape\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`shape_set_data<class_PhysicsServer2D_method_shape_set_data>`\ (\ shape\: :ref:`RID<class_RID>`, data\: :ref:`Variant<class_Variant>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`space_create<class_PhysicsServer2D_method_space_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PhysicsDirectSpaceState2D<class_PhysicsDirectSpaceState2D>` | :ref:`space_get_direct_state<class_PhysicsServer2D_method_space_get_direct_state>`\ (\ space\: :ref:`RID<class_RID>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`space_get_param<class_PhysicsServer2D_method_space_get_param>`\ (\ space\: :ref:`RID<class_RID>`, param\: :ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`space_is_active<class_PhysicsServer2D_method_space_is_active>`\ (\ space\: :ref:`RID<class_RID>`\ ) |const| |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`space_set_active<class_PhysicsServer2D_method_space_set_active>`\ (\ space\: :ref:`RID<class_RID>`, active\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`space_set_param<class_PhysicsServer2D_method_space_set_param>`\ (\ space\: :ref:`RID<class_RID>`, param\: :ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>`, value\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`world_boundary_shape_create<class_PhysicsServer2D_method_world_boundary_shape_create>`\ (\ ) |
+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Перечисления
------------------------
.. _enum_PhysicsServer2D_SpaceParameter:
.. rst-class:: classref-enumeration
enum **SpaceParameter**: :ref:`🔗<enum_PhysicsServer2D_SpaceParameter>`
.. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_RECYCLE_RADIUS:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_CONTACT_RECYCLE_RADIUS** = ``0``
Константа для установки/получения максимального расстояния, на которое должна переместиться пара тел, прежде чем их статус столкновения придется пересчитать. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/contact_recycle_radius<class_ProjectSettings_property_physics/2d/solver/contact_recycle_radius>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_MAX_SEPARATION:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_CONTACT_MAX_SEPARATION** = ``1``
Константа для установки/получения максимального расстояния между фигурами, на котором они могут находиться, прежде чем они будут считаться разделенными, а контакт будет отброшен. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/contact_max_separation<class_ProjectSettings_property_physics/2d/solver/contact_max_separation>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION** = ``2``
Константа для установки/получения максимального расстояния, на которое фигура может проникнуть в другую фигуру, прежде чем это будет считаться столкновением. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/contact_max_allowed_penetration<class_ProjectSettings_property_physics/2d/solver/contact_max_allowed_penetration>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_DEFAULT_BIAS:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_CONTACT_DEFAULT_BIAS** = ``3``
Константа для установки/получения смещения решателя по умолчанию для всех физических контактов. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после наложения, чтобы избежать их оставления в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/default_contact_bias<class_ProjectSettings_property_physics/2d/solver/default_contact_bias>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD** = ``4``
Константа для установки/получения пороговой линейной скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/sleep_threshold_linear<class_ProjectSettings_property_physics/2d/sleep_threshold_linear>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD** = ``5``
Константа для установки/получения пороговой угловой скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/sleep_threshold_angular<class_ProjectSettings_property_physics/2d/sleep_threshold_angular>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_BODY_TIME_TO_SLEEP:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_BODY_TIME_TO_SLEEP** = ``6``
Константа для установки/получения максимального времени активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении этого времени. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/time_before_sleep<class_ProjectSettings_property_physics/2d/time_before_sleep>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS** = ``7``
Константа для установки/получения смещения решателя по умолчанию для всех физических ограничений. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после нарушения ограничения, чтобы не оставлять их в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/default_constraint_bias<class_ProjectSettings_property_physics/2d/solver/default_constraint_bias>`.
.. _class_PhysicsServer2D_constant_SPACE_PARAM_SOLVER_ITERATIONS:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>` **SPACE_PARAM_SOLVER_ITERATIONS** = ``8``
Константа для установки/получения количества итераций решателя для всех контактов и ограничений. Чем больше количество итераций, тем точнее будут столкновения. Однако большее количество итераций требует большей мощности ЦП, что может снизить производительность. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/solver_iterations<class_ProjectSettings_property_physics/2d/solver/solver_iterations>`.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_ShapeType:
.. rst-class:: classref-enumeration
enum **ShapeType**: :ref:`🔗<enum_PhysicsServer2D_ShapeType>`
.. _class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_WORLD_BOUNDARY** = ``0``
Это константа для создания форм границ мира. Форма границ мира — это *бесконечная* линия с начальной точкой и нормалью. Таким образом, ее можно использовать для проверок спереди/сзади.
.. _class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_SEPARATION_RAY** = ``1``
Это константа для создания форм разделительного луча. Разделительный луч определяется длиной и отделяет себя от того, что касается его дальней конечной точки. Полезно для контроллеров персонажей.
.. _class_PhysicsServer2D_constant_SHAPE_SEGMENT:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_SEGMENT** = ``2``
Это константа для создания сегментных форм. Сегментная форма — это *конечная* линия от точки A до точки B. Ее можно проверить на пересечения.
.. _class_PhysicsServer2D_constant_SHAPE_CIRCLE:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_CIRCLE** = ``3``
Это константа для создания круговых форм. Круговая форма имеет только радиус. Ее можно использовать для пересечений и внутренних/внешних проверок.
.. _class_PhysicsServer2D_constant_SHAPE_RECTANGLE:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_RECTANGLE** = ``4``
Это константа для создания прямоугольных форм. Прямоугольная форма определяется шириной и высотой. Ее можно использовать для пересечений и внутренних/внешних проверок.
.. _class_PhysicsServer2D_constant_SHAPE_CAPSULE:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_CAPSULE** = ``5``
Это константа для создания форм капсул. Форма капсулы определяется радиусом и длиной. Ее можно использовать для пересечений и внутренних/внешних проверок.
.. _class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_CONVEX_POLYGON** = ``6``
Это константа для создания выпуклых многоугольных фигур. Многоугольник определяется списком точек. Его можно использовать для пересечений и внутренних/внешних проверок.
.. _class_PhysicsServer2D_constant_SHAPE_CONCAVE_POLYGON:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_CONCAVE_POLYGON** = ``7``
Это константа для создания вогнутых многоугольных фигур. Многоугольник определяется списком точек. Его можно использовать для проверки пересечений, но не для проверки внутри/снаружи.
.. _class_PhysicsServer2D_constant_SHAPE_CUSTOM:
.. rst-class:: classref-enumeration-constant
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **SHAPE_CUSTOM** = ``8``
Эта константа используется внутри движка. Любая попытка создать такую форму приведет к ошибке.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_AreaParameter:
.. rst-class:: classref-enumeration
enum **AreaParameter**: :ref:`🔗<enum_PhysicsServer2D_AreaParameter>`
.. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_OVERRIDE_MODE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_GRAVITY_OVERRIDE_MODE** = ``0``
Константа для установки/получения режима переопределения гравитации в области. См. :ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` для возможных значений. Значение этого параметра по умолчанию — :ref:`AREA_SPACE_OVERRIDE_DISABLED<class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_DISABLED>`.
.. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_GRAVITY** = ``1``
Константа для установки/получения силы гравитации в области. Значение этого параметра по умолчанию ``9.80665``.
.. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_VECTOR:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_GRAVITY_VECTOR** = ``2``
Константа для установки/получения вектора/центра гравитации в области. Значение этого параметра по умолчанию: ``Vector2(0, -1)``.
.. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_IS_POINT:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_GRAVITY_IS_POINT** = ``3``
Константа для установки/получения того, является ли вектор гравитации области направлением или центральной точкой. Значение этого параметра по умолчанию — ``false``.
.. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE** = ``4``
Константа для установки/получения расстояния, на котором сила гравитации равна силе гравитации, контролируемой :ref:`AREA_PARAM_GRAVITY<class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY>`. Например, на планете радиусом 100 пикселей с поверхностной гравитацией 4,0 px/s² установите гравитацию 4,0 и единичное расстояние 100,0. Гравитация будет спадать в соответствии с законом обратных квадратов, поэтому в этом примере на расстоянии 200 пикселей от центра гравитация будет 1,0 px/s² (в два раза больше расстояния, 1/4 гравитации), на расстоянии 50 пикселей она будет 16,0 px/s² (в два раза больше расстояния, 4x гравитации) и т. д.
Вышеуказанное верно только тогда, когда единичное расстояние является положительным числом. Когда единичное расстояние установлено равным 0,0, гравитация будет постоянной независимо от расстояния. Значение этого параметра по умолчанию равно ``0.0``.
.. _class_PhysicsServer2D_constant_AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE** = ``5``
Константа для установки/получения режима переопределения линейного затухания в области. См. :ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` для возможных значений. Значение этого параметра по умолчанию — :ref:`AREA_SPACE_OVERRIDE_DISABLED<class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_DISABLED>`.
.. _class_PhysicsServer2D_constant_AREA_PARAM_LINEAR_DAMP:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_LINEAR_DAMP** = ``6``
Константа для установки/получения линейного коэффициента затухания области. Значение этого параметра по умолчанию ``0.1``.
.. _class_PhysicsServer2D_constant_AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE** = ``7``
Константа для установки/получения режима переопределения углового демпфирования в области. См. :ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` для возможных значений. Значение этого параметра по умолчанию — :ref:`AREA_SPACE_OVERRIDE_DISABLED<class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_DISABLED>`.
.. _class_PhysicsServer2D_constant_AREA_PARAM_ANGULAR_DAMP:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_ANGULAR_DAMP** = ``8``
Константа для установки/получения углового коэффициента затухания области. Значение этого параметра по умолчанию ``1.0``.
.. _class_PhysicsServer2D_constant_AREA_PARAM_PRIORITY:
.. rst-class:: classref-enumeration-constant
:ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>` **AREA_PARAM_PRIORITY** = ``9``
Константа для установки/получения приоритета (порядка обработки) области. Значение этого параметра по умолчанию ``0``.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_AreaSpaceOverrideMode:
.. rst-class:: classref-enumeration
enum **AreaSpaceOverrideMode**: :ref:`🔗<enum_PhysicsServer2D_AreaSpaceOverrideMode>`
.. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` **AREA_SPACE_OVERRIDE_DISABLED** = ``0``
Эта область не влияет на гравитацию/влажность. Это, как правило, области, которые существуют только для обнаружения столкновений и объектов, входящих или выходящих из них.
.. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_COMBINE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` **AREA_SPACE_OVERRIDE_COMBINE** = ``1``
Эта область добавляет свои значения гравитации/влажности к тому, что было рассчитано до сих пор. Таким образом, многие перекрывающиеся области могут объединить свою физику, чтобы создать интересные эффекты.
.. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_COMBINE_REPLACE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` **AREA_SPACE_OVERRIDE_COMBINE_REPLACE** = ``2``
Эта область добавляет свои значения гравитации/влажности ко всему, что было рассчитано до сих пор. Затем перестает учитывать остальные области, даже область по умолчанию.
.. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_REPLACE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` **AREA_SPACE_OVERRIDE_REPLACE** = ``3``
Эта область заменяет любую гравитацию/влажность, даже заданную по умолчанию, и прекращает учитывать остальные области.
.. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_REPLACE_COMBINE:
.. rst-class:: classref-enumeration-constant
:ref:`AreaSpaceOverrideMode<enum_PhysicsServer2D_AreaSpaceOverrideMode>` **AREA_SPACE_OVERRIDE_REPLACE_COMBINE** = ``4``
Эта область заменяет все рассчитанные до сих пор значения гравитации/влажности, но продолжает рассчитывать остальные области, вплоть до области по умолчанию.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_BodyMode:
.. rst-class:: classref-enumeration
enum **BodyMode**: :ref:`🔗<enum_PhysicsServer2D_BodyMode>`
.. _class_PhysicsServer2D_constant_BODY_MODE_STATIC:
.. rst-class:: classref-enumeration-constant
:ref:`BodyMode<enum_PhysicsServer2D_BodyMode>` **BODY_MODE_STATIC** = ``0``
Константа для статических тел. В этом режиме тело может перемещаться только пользовательским кодом и не сталкивается с другими телами на своем пути при перемещении.
.. _class_PhysicsServer2D_constant_BODY_MODE_KINEMATIC:
.. rst-class:: classref-enumeration-constant
:ref:`BodyMode<enum_PhysicsServer2D_BodyMode>` **BODY_MODE_KINEMATIC** = ``1``
Константа для кинематических тел. В этом режиме тело может перемещаться только пользовательским кодом и сталкиваться с другими телами на своем пути.
.. _class_PhysicsServer2D_constant_BODY_MODE_RIGID:
.. rst-class:: classref-enumeration-constant
:ref:`BodyMode<enum_PhysicsServer2D_BodyMode>` **BODY_MODE_RIGID** = ``2``
Постоянная для твердых тел. В этом режиме тело может толкаться другими телами и к нему могут быть приложены силы.
.. _class_PhysicsServer2D_constant_BODY_MODE_RIGID_LINEAR:
.. rst-class:: classref-enumeration-constant
:ref:`BodyMode<enum_PhysicsServer2D_BodyMode>` **BODY_MODE_RIGID_LINEAR** = ``3``
Постоянная для линейных твердых тел. В этом режиме тело не может вращаться, и только его линейная скорость подвержена влиянию внешних сил.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_BodyParameter:
.. rst-class:: classref-enumeration
enum **BodyParameter**: :ref:`🔗<enum_PhysicsServer2D_BodyParameter>`
.. _class_PhysicsServer2D_constant_BODY_PARAM_BOUNCE:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_BOUNCE** = ``0``
Константа для установки/получения коэффициента отскока тела. Значение этого параметра по умолчанию ``0.0``.
.. _class_PhysicsServer2D_constant_BODY_PARAM_FRICTION:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_FRICTION** = ``1``
Константа для установки/получения трения тела. Значение этого параметра по умолчанию ``1.0``.
.. _class_PhysicsServer2D_constant_BODY_PARAM_MASS:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_MASS** = ``2``
Константа для установки/получения массы тела. Значение этого параметра по умолчанию — ``1.0``. Если режим тела установлен на :ref:`BODY_MODE_RIGID<class_PhysicsServer2D_constant_BODY_MODE_RIGID>`, то установка этого параметра будет иметь следующие дополнительные эффекты:
- Если параметр :ref:`BODY_PARAM_CENTER_OF_MASS<class_PhysicsServer2D_constant_BODY_PARAM_CENTER_OF_MASS>` никогда не был задан явно, то значение этого параметра будет пересчитано на основе форм тела.
- Если параметр :ref:`BODY_PARAM_INERTIA<class_PhysicsServer2D_constant_BODY_PARAM_INERTIA>` установлен на значение ``<= 0.0``, то значение этого параметра будет пересчитано на основе форм тела, массы и центра масс.
.. _class_PhysicsServer2D_constant_BODY_PARAM_INERTIA:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_INERTIA** = ``3``
Константа для установки/получения инерции тела. Значение этого параметра по умолчанию ``0.0``. Если инерция тела установлена на значение ``<= 0.0``, то инерция будет пересчитана на основе формы тела, массы и центра масс.
.. _class_PhysicsServer2D_constant_BODY_PARAM_CENTER_OF_MASS:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_CENTER_OF_MASS** = ``4``
Константа для установки/получения положения центра масс тела в его локальной системе координат. Значение этого параметра по умолчанию — ``Vector2(0, 0)``. Если этот параметр не задан явно, он пересчитывается на основе формы тела при установке параметра :ref:`BODY_PARAM_MASS<class_PhysicsServer2D_constant_BODY_PARAM_MASS>` или при вызове :ref:`body_set_space()<class_PhysicsServer2D_method_body_set_space>`.
.. _class_PhysicsServer2D_constant_BODY_PARAM_GRAVITY_SCALE:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_GRAVITY_SCALE** = ``5``
Константа для установки/получения множителя гравитации тела. Значение этого параметра по умолчанию ``1.0``.
.. _class_PhysicsServer2D_constant_BODY_PARAM_LINEAR_DAMP_MODE:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_LINEAR_DAMP_MODE** = ``6``
Константа для установки/получения линейного режима демпфирования тела. См. :ref:`BodyDampMode<enum_PhysicsServer2D_BodyDampMode>` для возможных значений. Значение этого параметра по умолчанию — :ref:`BODY_DAMP_MODE_COMBINE<class_PhysicsServer2D_constant_BODY_DAMP_MODE_COMBINE>`.
.. _class_PhysicsServer2D_constant_BODY_PARAM_ANGULAR_DAMP_MODE:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_ANGULAR_DAMP_MODE** = ``7``
Константа для установки/получения режима углового демпфирования тела. См. :ref:`BodyDampMode<enum_PhysicsServer2D_BodyDampMode>` для возможных значений. Значение этого параметра по умолчанию — :ref:`BODY_DAMP_MODE_COMBINE<class_PhysicsServer2D_constant_BODY_DAMP_MODE_COMBINE>`.
.. _class_PhysicsServer2D_constant_BODY_PARAM_LINEAR_DAMP:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_LINEAR_DAMP** = ``8``
Константа для установки/получения линейного коэффициента затухания тела. Значение этого параметра по умолчанию ``0.0``.
.. _class_PhysicsServer2D_constant_BODY_PARAM_ANGULAR_DAMP:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_ANGULAR_DAMP** = ``9``
Константа для установки/получения углового коэффициента демпфирования тела. Значение этого параметра по умолчанию ``0.0``.
.. _class_PhysicsServer2D_constant_BODY_PARAM_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>` **BODY_PARAM_MAX** = ``10``
Представляет размер перечисления :ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>`.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_BodyDampMode:
.. rst-class:: classref-enumeration
enum **BodyDampMode**: :ref:`🔗<enum_PhysicsServer2D_BodyDampMode>`
.. _class_PhysicsServer2D_constant_BODY_DAMP_MODE_COMBINE:
.. rst-class:: classref-enumeration-constant
:ref:`BodyDampMode<enum_PhysicsServer2D_BodyDampMode>` **BODY_DAMP_MODE_COMBINE** = ``0``
Значение демпфирования тела добавляется к любому значению, заданному в областях, или к значению по умолчанию.
.. _class_PhysicsServer2D_constant_BODY_DAMP_MODE_REPLACE:
.. rst-class:: classref-enumeration-constant
:ref:`BodyDampMode<enum_PhysicsServer2D_BodyDampMode>` **BODY_DAMP_MODE_REPLACE** = ``1``
Значение демпфирования тела заменяет любое значение, заданное в областях, или значение по умолчанию.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_BodyState:
.. rst-class:: classref-enumeration
enum **BodyState**: :ref:`🔗<enum_PhysicsServer2D_BodyState>`
.. _class_PhysicsServer2D_constant_BODY_STATE_TRANSFORM:
.. rst-class:: classref-enumeration-constant
:ref:`BodyState<enum_PhysicsServer2D_BodyState>` **BODY_STATE_TRANSFORM** = ``0``
Константа для установки/получения текущей матрицы преобразования тела.
.. _class_PhysicsServer2D_constant_BODY_STATE_LINEAR_VELOCITY:
.. rst-class:: classref-enumeration-constant
:ref:`BodyState<enum_PhysicsServer2D_BodyState>` **BODY_STATE_LINEAR_VELOCITY** = ``1``
Константа для установки/получения текущей линейной скорости тела.
.. _class_PhysicsServer2D_constant_BODY_STATE_ANGULAR_VELOCITY:
.. rst-class:: classref-enumeration-constant
:ref:`BodyState<enum_PhysicsServer2D_BodyState>` **BODY_STATE_ANGULAR_VELOCITY** = ``2``
Константа для установки/получения текущей угловой скорости тела.
.. _class_PhysicsServer2D_constant_BODY_STATE_SLEEPING:
.. rst-class:: classref-enumeration-constant
:ref:`BodyState<enum_PhysicsServer2D_BodyState>` **BODY_STATE_SLEEPING** = ``3``
Постоянно, чтобы заснуть/разбудить тело или узнать, спит ли оно.
.. _class_PhysicsServer2D_constant_BODY_STATE_CAN_SLEEP:
.. rst-class:: classref-enumeration-constant
:ref:`BodyState<enum_PhysicsServer2D_BodyState>` **BODY_STATE_CAN_SLEEP** = ``4``
Константа для установки/получения информации о том, может ли тело спать.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_JointType:
.. rst-class:: classref-enumeration
enum **JointType**: :ref:`🔗<enum_PhysicsServer2D_JointType>`
.. _class_PhysicsServer2D_constant_JOINT_TYPE_PIN:
.. rst-class:: classref-enumeration-constant
:ref:`JointType<enum_PhysicsServer2D_JointType>` **JOINT_TYPE_PIN** = ``0``
Константа для создания штифтовых соединений.
.. _class_PhysicsServer2D_constant_JOINT_TYPE_GROOVE:
.. rst-class:: classref-enumeration-constant
:ref:`JointType<enum_PhysicsServer2D_JointType>` **JOINT_TYPE_GROOVE** = ``1``
Константа для создания пазов.
.. _class_PhysicsServer2D_constant_JOINT_TYPE_DAMPED_SPRING:
.. rst-class:: classref-enumeration-constant
:ref:`JointType<enum_PhysicsServer2D_JointType>` **JOINT_TYPE_DAMPED_SPRING** = ``2``
Константа для создания демпфирующих пружинных соединений.
.. _class_PhysicsServer2D_constant_JOINT_TYPE_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`JointType<enum_PhysicsServer2D_JointType>` **JOINT_TYPE_MAX** = ``3``
Представляет размер перечисления :ref:`JointType<enum_PhysicsServer2D_JointType>`.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_JointParam:
.. rst-class:: classref-enumeration
enum **JointParam**: :ref:`🔗<enum_PhysicsServer2D_JointParam>`
.. _class_PhysicsServer2D_constant_JOINT_PARAM_BIAS:
.. rst-class:: classref-enumeration-constant
:ref:`JointParam<enum_PhysicsServer2D_JointParam>` **JOINT_PARAM_BIAS** = ``0``
Константа для установки/получения того, насколько быстро сочленение тянет тела назад, чтобы удовлетворить ограничение сочленения. Чем ниже значение, тем больше два тела могут тянуть сочленение. Значение этого параметра по умолчанию — ``0.0``.
\ **Примечание:** В физике Godot этот параметр используется только для штифтовых и пазовых соединений.
.. _class_PhysicsServer2D_constant_JOINT_PARAM_MAX_BIAS:
.. rst-class:: classref-enumeration-constant
:ref:`JointParam<enum_PhysicsServer2D_JointParam>` **JOINT_PARAM_MAX_BIAS** = ``1``
Константа для установки/получения максимальной скорости, с которой сочленение может применять исправления. Значение этого параметра по умолчанию — ``3.40282e+38``.
\ **Примечание:** В физике Godot этот параметр используется только для сочленений с канавками.
.. _class_PhysicsServer2D_constant_JOINT_PARAM_MAX_FORCE:
.. rst-class:: classref-enumeration-constant
:ref:`JointParam<enum_PhysicsServer2D_JointParam>` **JOINT_PARAM_MAX_FORCE** = ``2``
Константа для установки/получения максимальной силы, которую может использовать соединение для воздействия на два тела. Значение этого параметра по умолчанию — ``3.40282e+38``.
\ **Примечание:** В физике Годо этот параметр используется только для пазов.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_PinJointParam:
.. rst-class:: classref-enumeration
enum **PinJointParam**: :ref:`🔗<enum_PhysicsServer2D_PinJointParam>`
.. _class_PhysicsServer2D_constant_PIN_JOINT_SOFTNESS:
.. rst-class:: classref-enumeration-constant
:ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>` **PIN_JOINT_SOFTNESS** = ``0``
Константа для установки/получения того, насколько может изгибаться соединение штифтового соединения. Значение этого параметра по умолчанию — ``0.0``.
.. _class_PhysicsServer2D_constant_PIN_JOINT_LIMIT_UPPER:
.. rst-class:: classref-enumeration-constant
:ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>` **PIN_JOINT_LIMIT_UPPER** = ``1``
Максимальное вращение вокруг штифта.
.. _class_PhysicsServer2D_constant_PIN_JOINT_LIMIT_LOWER:
.. rst-class:: classref-enumeration-constant
:ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>` **PIN_JOINT_LIMIT_LOWER** = ``2``
Минимальное вращение вокруг штифта.
.. _class_PhysicsServer2D_constant_PIN_JOINT_MOTOR_TARGET_VELOCITY:
.. rst-class:: classref-enumeration-constant
:ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>` **PIN_JOINT_MOTOR_TARGET_VELOCITY** = ``3``
Целевая скорость двигателя. В радианах в секунду.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_PinJointFlag:
.. rst-class:: classref-enumeration
enum **PinJointFlag**: :ref:`🔗<enum_PhysicsServer2D_PinJointFlag>`
.. _class_PhysicsServer2D_constant_PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED:
.. rst-class:: classref-enumeration-constant
:ref:`PinJointFlag<enum_PhysicsServer2D_PinJointFlag>` **PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED** = ``0``
Если ``true``, штифт имеет максимальное и минимальное вращение.
.. _class_PhysicsServer2D_constant_PIN_JOINT_FLAG_MOTOR_ENABLED:
.. rst-class:: classref-enumeration-constant
:ref:`PinJointFlag<enum_PhysicsServer2D_PinJointFlag>` **PIN_JOINT_FLAG_MOTOR_ENABLED** = ``1``
Если ``true``, двигатель поворачивает штифт.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_DampedSpringParam:
.. rst-class:: classref-enumeration
enum **DampedSpringParam**: :ref:`🔗<enum_PhysicsServer2D_DampedSpringParam>`
.. _class_PhysicsServer2D_constant_DAMPED_SPRING_REST_LENGTH:
.. rst-class:: classref-enumeration-constant
:ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>` **DAMPED_SPRING_REST_LENGTH** = ``0``
Устанавливает длину покоя пружинного соединения. Соединение всегда будет пытаться вернуться на эту длину при раздвижении. Значение этого параметра по умолчанию — расстояние между точками крепления соединения.
.. _class_PhysicsServer2D_constant_DAMPED_SPRING_STIFFNESS:
.. rst-class:: classref-enumeration-constant
:ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>` **DAMPED_SPRING_STIFFNESS** = ``1``
Устанавливает жесткость пружинного соединения. Соединение прикладывает силу, равную жесткости, умноженной на расстояние от его длины покоя. Значение этого параметра по умолчанию — ``20.0``.
.. _class_PhysicsServer2D_constant_DAMPED_SPRING_DAMPING:
.. rst-class:: classref-enumeration-constant
:ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>` **DAMPED_SPRING_DAMPING** = ``2``
Устанавливает коэффициент демпфирования пружинного соединения. Значение 0 указывает на недемпфированную пружину, а значение 1 заставляет систему достигать равновесия как можно быстрее (критическое демпфирование). Значение этого параметра по умолчанию — ``1.5``.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_CCDMode:
.. rst-class:: classref-enumeration
enum **CCDMode**: :ref:`🔗<enum_PhysicsServer2D_CCDMode>`
.. _class_PhysicsServer2D_constant_CCD_MODE_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`CCDMode<enum_PhysicsServer2D_CCDMode>` **CCD_MODE_DISABLED** = ``0``
Отключает непрерывное обнаружение столкновений. Это самый быстрый способ обнаружения столкновений тел, но он может пропустить небольшие и/или быстро движущиеся объекты.
.. _class_PhysicsServer2D_constant_CCD_MODE_CAST_RAY:
.. rst-class:: classref-enumeration-constant
:ref:`CCDMode<enum_PhysicsServer2D_CCDMode>` **CCD_MODE_CAST_RAY** = ``1``
Позволяет непрерывно обнаруживать столкновения с помощью raycasting. Это быстрее, чем shapecasting, но менее точно.
.. _class_PhysicsServer2D_constant_CCD_MODE_CAST_SHAPE:
.. rst-class:: classref-enumeration-constant
:ref:`CCDMode<enum_PhysicsServer2D_CCDMode>` **CCD_MODE_CAST_SHAPE** = ``2``
Позволяет непрерывно обнаруживать столкновения с помощью шейпкастинга. Это самый медленный метод ПЗС, но и самый точный.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_AreaBodyStatus:
.. rst-class:: classref-enumeration
enum **AreaBodyStatus**: :ref:`🔗<enum_PhysicsServer2D_AreaBodyStatus>`
.. _class_PhysicsServer2D_constant_AREA_BODY_ADDED:
.. rst-class:: classref-enumeration-constant
:ref:`AreaBodyStatus<enum_PhysicsServer2D_AreaBodyStatus>` **AREA_BODY_ADDED** = ``0``
Значение первого параметра и функция обратного вызова области получает, когда объект входит в одну из ее фигур.
.. _class_PhysicsServer2D_constant_AREA_BODY_REMOVED:
.. rst-class:: classref-enumeration-constant
:ref:`AreaBodyStatus<enum_PhysicsServer2D_AreaBodyStatus>` **AREA_BODY_REMOVED** = ``1``
Значение первого параметра и функция обратного вызова области получает, когда объект выходит из одной из своих фигур.
.. rst-class:: classref-item-separator
----
.. _enum_PhysicsServer2D_ProcessInfo:
.. rst-class:: classref-enumeration
enum **ProcessInfo**: :ref:`🔗<enum_PhysicsServer2D_ProcessInfo>`
.. _class_PhysicsServer2D_constant_INFO_ACTIVE_OBJECTS:
.. rst-class:: classref-enumeration-constant
:ref:`ProcessInfo<enum_PhysicsServer2D_ProcessInfo>` **INFO_ACTIVE_OBJECTS** = ``0``
Константа для получения количества объектов, которые не спят.
.. _class_PhysicsServer2D_constant_INFO_COLLISION_PAIRS:
.. rst-class:: classref-enumeration-constant
:ref:`ProcessInfo<enum_PhysicsServer2D_ProcessInfo>` **INFO_COLLISION_PAIRS** = ``1``
Константа для получения количества возможных столкновений.
.. _class_PhysicsServer2D_constant_INFO_ISLAND_COUNT:
.. rst-class:: classref-enumeration-constant
:ref:`ProcessInfo<enum_PhysicsServer2D_ProcessInfo>` **INFO_ISLAND_COUNT** = ``2``
Константа для получения количества областей пространства, где может произойти столкновение.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_PhysicsServer2D_method_area_add_shape:
.. rst-class:: classref-method
|void| **area_add_shape**\ (\ area\: :ref:`RID<class_RID>`, shape\: :ref:`RID<class_RID>`, transform\: :ref:`Transform2D<class_Transform2D>` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_PhysicsServer2D_method_area_add_shape>`
Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами ``transform`` и ``disabled``) добавляется в массив фигур, а фигуры области обычно ссылаются по их индексу в этом массиве.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_attach_canvas_instance_id:
.. rst-class:: classref-method
|void| **area_attach_canvas_instance_id**\ (\ area\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_attach_canvas_instance_id>`
Прикрепляет ``ObjectID`` холста к области. Используйте :ref:`Object.get_instance_id()<class_Object_method_get_instance_id>`, чтобы получить ``ObjectID`` для :ref:`CanvasLayer<class_CanvasLayer>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_attach_object_instance_id:
.. rst-class:: classref-method
|void| **area_attach_object_instance_id**\ (\ area\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_attach_object_instance_id>`
Прикрепляет ``ObjectID`` :ref:`Object<class_Object>` к области. Используйте :ref:`Object.get_instance_id()<class_Object_method_get_instance_id>`, чтобы получить ``ObjectID`` для :ref:`CollisionObject2D<class_CollisionObject2D>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_clear_shapes:
.. rst-class:: classref-method
|void| **area_clear_shapes**\ (\ area\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_clear_shapes>`
Удаляет все фигуры из области. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **area_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_area_create>`
Создает объект 2D-области на физическом сервере и возвращает :ref:`RID<class_RID>`, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновений и маску, установленные на ``1``, и ``monitorable``, установленные на ``false``.
Используйте :ref:`area_add_shape()<class_PhysicsServer2D_method_area_add_shape>`, чтобы добавить к нему формы, используйте :ref:`area_set_transform()<class_PhysicsServer2D_method_area_set_transform>`, чтобы задать его преобразование, и используйте :ref:`area_set_space()<class_PhysicsServer2D_method_area_set_space>`, чтобы добавить область в пространство. Если вы хотите, чтобы область была обнаруживаемой, используйте :ref:`area_set_monitorable()<class_PhysicsServer2D_method_area_set_monitorable>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_canvas_instance_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **area_get_canvas_instance_id**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_canvas_instance_id>`
Возвращает ``ObjectID`` холста, прикрепленного к области. Используйте :ref:`@GlobalScope.instance_from_id()<class_@GlobalScope_method_instance_from_id>`, чтобы получить :ref:`CanvasLayer<class_CanvasLayer>` из ненулевого ``ObjectID``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_collision_layer:
.. rst-class:: classref-method
:ref:`int<class_int>` **area_get_collision_layer**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_collision_layer>`
Возвращает физический слой или слои, к которым принадлежит область, в виде битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_collision_mask:
.. rst-class:: classref-method
:ref:`int<class_int>` **area_get_collision_mask**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_collision_mask>`
Возвращает физический слой или слои, с которыми может контактировать область, в виде битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_object_instance_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **area_get_object_instance_id**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_object_instance_id>`
Возвращает ``ObjectID``, прикрепленный к области. Используйте :ref:`@GlobalScope.instance_from_id()<class_@GlobalScope_method_instance_from_id>`, чтобы извлечь :ref:`Object<class_Object>` из ненулевого ``ObjectID``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_param:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **area_get_param**\ (\ area\: :ref:`RID<class_RID>`, param\: :ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_param>`
Возвращает значение заданного параметра площади.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_shape:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **area_get_shape**\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_shape>`
Возвращает :ref:`RID<class_RID>` фигуры с указанным индексом в массиве фигур области.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_shape_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **area_get_shape_count**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_shape_count>`
Возвращает количество фигур, добавленных в область.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_shape_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **area_get_shape_transform**\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_shape_transform>`
Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_space:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **area_get_space**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_space>`
Возвращает :ref:`RID<class_RID>` пространства, назначенного области. Возвращает пустой :ref:`RID<class_RID>`, если пространство не назначено.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_get_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **area_get_transform**\ (\ area\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_area_get_transform>`
Возвращает матрицу преобразования области.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_remove_shape:
.. rst-class:: classref-method
|void| **area_remove_shape**\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_remove_shape>`
Удаляет фигуру с указанным индексом из массива фигур области. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур области, которые имели индексы выше ``shape_idx``, индекс будет уменьшен на единицу.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_area_monitor_callback:
.. rst-class:: classref-method
|void| **area_set_area_monitor_callback**\ (\ area\: :ref:`RID<class_RID>`, callback\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_area_monitor_callback>`
Устанавливает обратный вызов монитора области. Этот обратный вызов будет вызван, когда любая другая (форма) области входит или выходит из (формы) заданной области, и должен принимать следующие пять параметров:
1. целое число ``status``: либо :ref:`AREA_BODY_ADDED<class_PhysicsServer2D_constant_AREA_BODY_ADDED>` или :ref:`AREA_BODY_REMOVED<class_PhysicsServer2D_constant_AREA_BODY_REMOVED>` в зависимости от того, вошла или вышла из области форма другой области,
2. :ref:`RID<class_RID>` ``area_rid``: :ref:`RID<class_RID>` другой области, которая вошла или вышла из области,
3. целое число ``instance_id``: ``ObjectID``, прикрепленный к другой области,
4. целое число ``area_shape_idx``: индекс формы другой области, которая вошла или вышла из области,
5. целое число ``self_shape_idx``: индекс формы области, в которую вошла или вышла другая область.
Подсчитывая (или отслеживая) входящие и выходящие фигуры, можно определить, входит ли область (со всеми ее фигурами) в первый раз или выходит в последний раз.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_collision_layer:
.. rst-class:: classref-method
|void| **area_set_collision_layer**\ (\ area\: :ref:`RID<class_RID>`, layer\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_collision_layer>`
Назначает область одному или нескольким физическим слоям с помощью битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_collision_mask:
.. rst-class:: classref-method
|void| **area_set_collision_mask**\ (\ area\: :ref:`RID<class_RID>`, mask\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_collision_mask>`
Устанавливает, какие физические слои будет отслеживать область, с помощью битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_monitor_callback:
.. rst-class:: classref-method
|void| **area_set_monitor_callback**\ (\ area\: :ref:`RID<class_RID>`, callback\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_monitor_callback>`
Устанавливает обратный вызов монитора тела области. Этот обратный вызов будет вызван, когда любое другое (форма) тело входит или выходит (форма) из заданной области, и должен принимать следующие пять параметров:
1. целое число ``status``: либо :ref:`AREA_BODY_ADDED<class_PhysicsServer2D_constant_AREA_BODY_ADDED>` или :ref:`AREA_BODY_REMOVED<class_PhysicsServer2D_constant_AREA_BODY_REMOVED>` в зависимости от того, вошла или вышла из области другая форма тела,
2. :ref:`RID<class_RID>` ``body_rid``: :ref:`RID<class_RID>` тела, которое вошло или вышло из области,
3. целое число ``instance_id``: ``ObjectID``, прикрепленный к телу,
4. целое число ``body_shape_idx``: индекс формы тела, которое вошло или вышло из области,
5. целое число ``self_shape_idx``: индекс формы области, в которую тело вошло или вышло.
Подсчитывая (или отслеживая) входящие и выходящие формы, можно определить, входит ли тело (со всеми его формами) в первый раз или выходит в последний раз.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_monitorable:
.. rst-class:: classref-method
|void| **area_set_monitorable**\ (\ area\: :ref:`RID<class_RID>`, monitorable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_monitorable>`
Устанавливает, является ли область контролируемой или нет. Если ``monitorable`` имеет значение ``true``, обратный вызов мониторинга области других областей будет вызван, когда эта область входит в них или выходит из них.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_param:
.. rst-class:: classref-method
|void| **area_set_param**\ (\ area\: :ref:`RID<class_RID>`, param\: :ref:`AreaParameter<enum_PhysicsServer2D_AreaParameter>`, value\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_param>`
Устанавливает значение заданного параметра области.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_shape:
.. rst-class:: classref-method
|void| **area_set_shape**\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, shape\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_shape>`
Заменяет форму области по указанному индексу на другую форму, не влияя на свойства ``transform`` и ``disabled`` по тому же индексу.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_shape_disabled:
.. rst-class:: classref-method
|void| **area_set_shape_disabled**\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, disabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_shape_disabled>`
Устанавливает отключенное свойство формы области с заданным индексом. Если ``disabled`` равен ``true``, то форма не будет обнаруживать никакие другие формы, входящие или выходящие из нее.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_shape_transform:
.. rst-class:: classref-method
|void| **area_set_shape_transform**\ (\ area\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, transform\: :ref:`Transform2D<class_Transform2D>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_shape_transform>`
Задает матрицу локального преобразования формы области с заданным индексом.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_space:
.. rst-class:: classref-method
|void| **area_set_space**\ (\ area\: :ref:`RID<class_RID>`, space\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_space>`
Добавляет область к указанному пространству после удаления области из ранее назначенного пространства (если таковое имеется).
\ **Примечание:** Чтобы удалить область из пространства без немедленного добавления ее обратно в другое место, используйте ``PhysicsServer2D.area_set_space(area, RID())``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_area_set_transform:
.. rst-class:: classref-method
|void| **area_set_transform**\ (\ area\: :ref:`RID<class_RID>`, transform\: :ref:`Transform2D<class_Transform2D>`\ ) :ref:`🔗<class_PhysicsServer2D_method_area_set_transform>`
Задает матрицу преобразования области.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_add_collision_exception:
.. rst-class:: classref-method
|void| **body_add_collision_exception**\ (\ body\: :ref:`RID<class_RID>`, excepted_body\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_add_collision_exception>`
Добавляет ``exceptioned_body`` в список исключений столкновений тела, чтобы столкновения с ним игнорировались.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_add_constant_central_force:
.. rst-class:: classref-method
|void| **body_add_constant_central_force**\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_add_constant_central_force>`
Добавляет постоянную направленную силу к телу. Сила не влияет на вращение. Сила остается приложенной с течением времени, пока не будет очищена с помощью ``PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0))``.
Это эквивалентно использованию :ref:`body_add_constant_force()<class_PhysicsServer2D_method_body_add_constant_force>` в центре масс тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_add_constant_force:
.. rst-class:: classref-method
|void| **body_add_constant_force**\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`, position\: :ref:`Vector2<class_Vector2>` = Vector2(0, 0)\ ) :ref:`🔗<class_PhysicsServer2D_method_body_add_constant_force>`
Добавляет постоянную позиционную силу к телу. Сила может влиять на вращение, если ``position`` отличается от центра масс тела. Сила остается приложенной с течением времени, пока не будет очищена с помощью ``PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0))``.
\ ``position`` — это смещение от начала координат тела в глобальных координатах.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_add_constant_torque:
.. rst-class:: classref-method
|void| **body_add_constant_torque**\ (\ body\: :ref:`RID<class_RID>`, torque\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_add_constant_torque>`
Добавляет постоянную вращательную силу к телу. Сила не влияет на положение. Сила остается приложенной с течением времени, пока не будет очищена с помощью ``PhysicsServer2D.body_set_constant_torque(body, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_add_shape:
.. rst-class:: classref-method
|void| **body_add_shape**\ (\ body\: :ref:`RID<class_RID>`, shape\: :ref:`RID<class_RID>`, transform\: :ref:`Transform2D<class_Transform2D>` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_PhysicsServer2D_method_body_add_shape>`
Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами ``transform`` и ``disabled``) добавляется в массив фигур, а фигуры тела обычно ссылаются по их индексу в этом массиве.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_apply_central_force:
.. rst-class:: classref-method
|void| **body_apply_central_force**\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_apply_central_force>`
Применяет направленную силу к телу в центре масс тела. Сила не влияет на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики.
Это эквивалентно использованию :ref:`body_apply_force()<class_PhysicsServer2D_method_body_apply_force>` в центре масс тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_apply_central_impulse:
.. rst-class:: classref-method
|void| **body_apply_central_impulse**\ (\ body\: :ref:`RID<class_RID>`, impulse\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_apply_central_impulse>`
Применяет направленный импульс к телу в центре масс тела. Импульс не влияет на вращение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
Это эквивалентно использованию :ref:`body_apply_impulse()<class_PhysicsServer2D_method_body_apply_impulse>` в центре масс тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_apply_force:
.. rst-class:: classref-method
|void| **body_apply_force**\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`, position\: :ref:`Vector2<class_Vector2>` = Vector2(0, 0)\ ) :ref:`🔗<class_PhysicsServer2D_method_body_apply_force>`
Применяет позиционированную силу к телу. Сила может влиять на вращение, если ``position`` отличается от центра масс тела. Сила зависит от времени и должна применяться при каждом обновлении физики.
\ ``position`` — это смещение от начала координат тела в глобальных координатах.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_apply_impulse:
.. rst-class:: classref-method
|void| **body_apply_impulse**\ (\ body\: :ref:`RID<class_RID>`, impulse\: :ref:`Vector2<class_Vector2>`, position\: :ref:`Vector2<class_Vector2>` = Vector2(0, 0)\ ) :ref:`🔗<class_PhysicsServer2D_method_body_apply_impulse>`
Применяет позиционированный импульс к телу. Импульс может влиять на вращение, если ``position`` отличается от центра масс тела.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
\ ``position`` — это смещение от начала координат тела в глобальных координатах.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_apply_torque:
.. rst-class:: classref-method
|void| **body_apply_torque**\ (\ body\: :ref:`RID<class_RID>`, torque\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_apply_torque>`
Применяет вращательную силу к телу. Сила не влияет на положение. Сила зависит от времени и должна применяться при каждом обновлении физики.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_apply_torque_impulse:
.. rst-class:: classref-method
|void| **body_apply_torque_impulse**\ (\ body\: :ref:`RID<class_RID>`, impulse\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_apply_torque_impulse>`
Применяет вращательный импульс к телу. Импульс не влияет на положение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_attach_canvas_instance_id:
.. rst-class:: classref-method
|void| **body_attach_canvas_instance_id**\ (\ body\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_attach_canvas_instance_id>`
Прикрепляет ``ObjectID`` холста к телу. Используйте :ref:`Object.get_instance_id()<class_Object_method_get_instance_id>`, чтобы получить ``ObjectID`` :ref:`CanvasLayer<class_CanvasLayer>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_attach_object_instance_id:
.. rst-class:: classref-method
|void| **body_attach_object_instance_id**\ (\ body\: :ref:`RID<class_RID>`, id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_attach_object_instance_id>`
Прикрепляет ``ObjectID``, из :ref:`Object<class_Object>`, к телу. Используйте :ref:`Object.get_instance_id()<class_Object_method_get_instance_id>`, чтобы получить ``ObjectID`` :ref:`CollisionObject2D<class_CollisionObject2D>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_clear_shapes:
.. rst-class:: classref-method
|void| **body_clear_shapes**\ (\ body\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_clear_shapes>`
Удаляет все фигуры из тела. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **body_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_body_create>`
Создает объект 2D-тела на физическом сервере и возвращает :ref:`RID<class_RID>`, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновения и маску, установленные на ``1``, и режим тела, установленный на :ref:`BODY_MODE_RIGID<class_PhysicsServer2D_constant_BODY_MODE_RIGID>`.
Используйте :ref:`body_add_shape()<class_PhysicsServer2D_method_body_add_shape>`, чтобы добавить к нему формы, используйте :ref:`body_set_state()<class_PhysicsServer2D_method_body_set_state>`, чтобы задать его преобразование, и используйте :ref:`body_set_space()<class_PhysicsServer2D_method_body_set_space>`, чтобы добавить тело в пространство.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_canvas_instance_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **body_get_canvas_instance_id**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_canvas_instance_id>`
Возвращает ``ObjectID`` холста, прикрепленного к телу. Используйте :ref:`@GlobalScope.instance_from_id()<class_@GlobalScope_method_instance_from_id>`, чтобы получить :ref:`CanvasLayer<class_CanvasLayer>` из ненулевого ``ObjectID``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_collision_layer:
.. rst-class:: classref-method
:ref:`int<class_int>` **body_get_collision_layer**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_collision_layer>`
Возвращает физический слой или слои, к которым принадлежит тело, в виде битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_collision_mask:
.. rst-class:: classref-method
:ref:`int<class_int>` **body_get_collision_mask**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_collision_mask>`
Возвращает физический слой или слои, с которыми может сталкиваться тело, в виде битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_collision_priority:
.. rst-class:: classref-method
:ref:`float<class_float>` **body_get_collision_priority**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_collision_priority>`
Возвращает приоритет столкновения тела. Используется в фазе депенетирования :ref:`body_test_motion()<class_PhysicsServer2D_method_body_test_motion>`. Чем выше приоритет, тем ниже будет проникновение в тело.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_constant_force:
.. rst-class:: classref-method
:ref:`Vector2<class_Vector2>` **body_get_constant_force**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_constant_force>`
Возвращает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики.
См. :ref:`body_add_constant_force()<class_PhysicsServer2D_method_body_add_constant_force>` и :ref:`body_add_constant_central_force()<class_PhysicsServer2D_method_body_add_constant_central_force>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_constant_torque:
.. rst-class:: classref-method
:ref:`float<class_float>` **body_get_constant_torque**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_constant_torque>`
Возвращает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики.
См. :ref:`body_add_constant_torque()<class_PhysicsServer2D_method_body_add_constant_torque>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_continuous_collision_detection_mode:
.. rst-class:: classref-method
:ref:`CCDMode<enum_PhysicsServer2D_CCDMode>` **body_get_continuous_collision_detection_mode**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_continuous_collision_detection_mode>`
Возвращает режим непрерывного обнаружения столкновений тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_direct_state:
.. rst-class:: classref-method
:ref:`PhysicsDirectBodyState2D<class_PhysicsDirectBodyState2D>` **body_get_direct_state**\ (\ body\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_get_direct_state>`
Возвращает :ref:`PhysicsDirectBodyState2D<class_PhysicsDirectBodyState2D>` тела. Возвращает ``null``, если тело уничтожено или не назначено пространству.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_max_contacts_reported:
.. rst-class:: classref-method
:ref:`int<class_int>` **body_get_max_contacts_reported**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_max_contacts_reported>`
Возвращает максимальное количество контактов, о которых может сообщить тело. См. :ref:`body_set_max_contacts_reported()<class_PhysicsServer2D_method_body_set_max_contacts_reported>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_mode:
.. rst-class:: classref-method
:ref:`BodyMode<enum_PhysicsServer2D_BodyMode>` **body_get_mode**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_mode>`
Возвращает режим тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_object_instance_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **body_get_object_instance_id**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_object_instance_id>`
Возвращает ``ObjectID``, прикрепленный к телу. Используйте :ref:`@GlobalScope.instance_from_id()<class_@GlobalScope_method_instance_from_id>`, чтобы извлечь :ref:`Object<class_Object>` из ненулевого ``ObjectID``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_param:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **body_get_param**\ (\ body\: :ref:`RID<class_RID>`, param\: :ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_param>`
Возвращает значение указанного параметра тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_shape:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **body_get_shape**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_shape>`
Возвращает :ref:`RID<class_RID>` фигуры с указанным индексом в массиве фигур тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_shape_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **body_get_shape_count**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_shape_count>`
Возвращает количество фигур, добавленных к телу.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_shape_transform:
.. rst-class:: classref-method
:ref:`Transform2D<class_Transform2D>` **body_get_shape_transform**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_shape_transform>`
Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_space:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **body_get_space**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_space>`
Возвращает :ref:`RID<class_RID>` пространства, назначенного телу. Возвращает пустой :ref:`RID<class_RID>`, если пространство не назначено.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_get_state:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **body_get_state**\ (\ body\: :ref:`RID<class_RID>`, state\: :ref:`BodyState<enum_PhysicsServer2D_BodyState>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_get_state>`
Возвращает значение заданного состояния тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_is_omitting_force_integration:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **body_is_omitting_force_integration**\ (\ body\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_body_is_omitting_force_integration>`
Возвращает ``true``, если тело пропускает стандартную интеграцию силы. См. :ref:`body_set_omit_force_integration()<class_PhysicsServer2D_method_body_set_omit_force_integration>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_remove_collision_exception:
.. rst-class:: classref-method
|void| **body_remove_collision_exception**\ (\ body\: :ref:`RID<class_RID>`, excepted_body\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_remove_collision_exception>`
Удаляет ``exceptioned_body`` из списка исключений столкновений тела, так что столкновения с ним больше не игнорируются.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_remove_shape:
.. rst-class:: classref-method
|void| **body_remove_shape**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_remove_shape>`
Удаляет фигуру с указанным индексом из массива фигур тела. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур тела, которые имели индексы выше ``shape_idx``, индекс будет уменьшен на единицу.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_reset_mass_properties:
.. rst-class:: classref-method
|void| **body_reset_mass_properties**\ (\ body\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_reset_mass_properties>`
Восстанавливает инерцию и центр масс тела по умолчанию на основе его форм. Это отменяет любые пользовательские значения, ранее заданные с помощью :ref:`body_set_param()<class_PhysicsServer2D_method_body_set_param>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_axis_velocity:
.. rst-class:: classref-method
|void| **body_set_axis_velocity**\ (\ body\: :ref:`RID<class_RID>`, axis_velocity\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_axis_velocity>`
Изменяет линейную скорость тела таким образом, что ее проекция на ось ``axis_velocity.normalized()`` равна в точности ``axis_velocity.length()``. Это полезно для прыжкового поведения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_collision_layer:
.. rst-class:: classref-method
|void| **body_set_collision_layer**\ (\ body\: :ref:`RID<class_RID>`, layer\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_collision_layer>`
Устанавливает физический слой или слои, к которым принадлежит тело, с помощью битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_collision_mask:
.. rst-class:: classref-method
|void| **body_set_collision_mask**\ (\ body\: :ref:`RID<class_RID>`, mask\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_collision_mask>`
Устанавливает физический слой или слои, с которыми может сталкиваться тело, с помощью битовой маски.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_collision_priority:
.. rst-class:: classref-method
|void| **body_set_collision_priority**\ (\ body\: :ref:`RID<class_RID>`, priority\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_collision_priority>`
Устанавливает приоритет столкновения тела. Используется в фазе депенетирования :ref:`body_test_motion()<class_PhysicsServer2D_method_body_test_motion>`. Чем выше приоритет, тем ниже будет проникновение в тело.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_constant_force:
.. rst-class:: classref-method
|void| **body_set_constant_force**\ (\ body\: :ref:`RID<class_RID>`, force\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_constant_force>`
Устанавливает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики.
См. :ref:`body_add_constant_force()<class_PhysicsServer2D_method_body_add_constant_force>` и :ref:`body_add_constant_central_force()<class_PhysicsServer2D_method_body_add_constant_central_force>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_constant_torque:
.. rst-class:: classref-method
|void| **body_set_constant_torque**\ (\ body\: :ref:`RID<class_RID>`, torque\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_constant_torque>`
Устанавливает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики.
См. :ref:`body_add_constant_torque()<class_PhysicsServer2D_method_body_add_constant_torque>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_continuous_collision_detection_mode:
.. rst-class:: classref-method
|void| **body_set_continuous_collision_detection_mode**\ (\ body\: :ref:`RID<class_RID>`, mode\: :ref:`CCDMode<enum_PhysicsServer2D_CCDMode>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_continuous_collision_detection_mode>`
Устанавливает режим непрерывного обнаружения столкновений.
Непрерывное обнаружение столкновений пытается предсказать, где движущееся тело столкнется между обновлениями физики, вместо того, чтобы перемещать его и корректировать его движение в случае столкновения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_force_integration_callback:
.. rst-class:: classref-method
|void| **body_set_force_integration_callback**\ (\ body\: :ref:`RID<class_RID>`, callable\: :ref:`Callable<class_Callable>`, userdata\: :ref:`Variant<class_Variant>` = null\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_force_integration_callback>`
Устанавливает функцию обратного вызова интегрирования силы тела на ``callable``. Используйте пустой :ref:`Callable<class_Callable>` (``Callable()``), чтобы очистить пользовательский обратный вызов.
Функция ``callable`` будет вызываться каждый физический тик перед стандартным интегрированием силы (см. :ref:`body_set_omit_force_integration()<class_PhysicsServer2D_method_body_set_omit_force_integration>`). Ее можно использовать, например, для обновления линейной и угловой скорости тела на основе контакта с другими телами.
Если ``userdata`` не является ``null``, функция ``callable`` должна принимать следующие два параметра:
1. ``state``: :ref:`PhysicsDirectBodyState2D<class_PhysicsDirectBodyState2D>`, используемый для получения и изменения состояния тела,
2. ``userdata``: :ref:`Variant<class_Variant>`; ее значением будет ``userdata``, переданный в этот метод.
Если ``userdata`` равен ``null``, то ``callable`` должен принимать только параметр ``state``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_max_contacts_reported:
.. rst-class:: classref-method
|void| **body_set_max_contacts_reported**\ (\ body\: :ref:`RID<class_RID>`, amount\: :ref:`int<class_int>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_max_contacts_reported>`
Устанавливает максимальное количество контактов, о которых может сообщить тело. Если ``amount`` больше нуля, то тело будет отслеживать не более этого количества контактов с другими телами.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_mode:
.. rst-class:: classref-method
|void| **body_set_mode**\ (\ body\: :ref:`RID<class_RID>`, mode\: :ref:`BodyMode<enum_PhysicsServer2D_BodyMode>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_mode>`
Устанавливает режим тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_omit_force_integration:
.. rst-class:: classref-method
|void| **body_set_omit_force_integration**\ (\ body\: :ref:`RID<class_RID>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_omit_force_integration>`
Устанавливает, будет ли тело пропускать стандартную интеграцию силы. Если ``enable`` равно ``true``, тело не будет автоматически использовать приложенные силы, крутящие моменты и демпфирование для обновления линейной и угловой скорости тела. В этом случае :ref:`body_set_force_integration_callback()<class_PhysicsServer2D_method_body_set_force_integration_callback>` можно использовать для ручного обновления линейной и угловой скорости.
Этот метод вызывается, когда задано свойство :ref:`RigidBody2D.custom_integrator<class_RigidBody2D_property_custom_integrator>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_param:
.. rst-class:: classref-method
|void| **body_set_param**\ (\ body\: :ref:`RID<class_RID>`, param\: :ref:`BodyParameter<enum_PhysicsServer2D_BodyParameter>`, value\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_param>`
Устанавливает значение указанного параметра тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_shape:
.. rst-class:: classref-method
|void| **body_set_shape**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, shape\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_shape>`
Заменяет форму тела по указанному индексу на другую форму, не влияя на свойства ``transform``, ``disabled`` и одностороннего столкновения по тому же индексу.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_shape_as_one_way_collision:
.. rst-class:: classref-method
|void| **body_set_shape_as_one_way_collision**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`, margin\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_shape_as_one_way_collision>`
Устанавливает свойства одностороннего столкновения формы тела с заданным индексом. Если ``enable`` равен ``true``, направление одностороннего столкновения, заданное локальной восходящей осью формы ``body_get_shape_transform(body, shape_idx).y``, будет использоваться для игнорирования столкновений с формой в противоположном направлении и для обеспечения того, чтобы депенетрация кинематических тел происходила в этом направлении.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_shape_disabled:
.. rst-class:: classref-method
|void| **body_set_shape_disabled**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, disabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_shape_disabled>`
Устанавливает отключенное свойство формы тела с заданным индексом. Если ``disabled`` равен ``true``, то форма будет игнорироваться при всех обнаружениях столкновений.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_shape_transform:
.. rst-class:: classref-method
|void| **body_set_shape_transform**\ (\ body\: :ref:`RID<class_RID>`, shape_idx\: :ref:`int<class_int>`, transform\: :ref:`Transform2D<class_Transform2D>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_shape_transform>`
Задает локальную матрицу преобразования формы тела с заданным индексом.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_space:
.. rst-class:: classref-method
|void| **body_set_space**\ (\ body\: :ref:`RID<class_RID>`, space\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_space>`
Добавляет тело в заданное пространство после удаления тела из ранее назначенного пространства (если оно есть). Если режим тела установлен на :ref:`BODY_MODE_RIGID<class_PhysicsServer2D_constant_BODY_MODE_RIGID>`, то добавление тела в пространство будет иметь следующие дополнительные эффекты:
- Если параметр :ref:`BODY_PARAM_CENTER_OF_MASS<class_PhysicsServer2D_constant_BODY_PARAM_CENTER_OF_MASS>` никогда не был задан явно, то значение этого параметра будет пересчитано на основе форм тела.
- Если параметр :ref:`BODY_PARAM_INERTIA<class_PhysicsServer2D_constant_BODY_PARAM_INERTIA>` установлен на значение ``<= 0.0``, то значение этого параметра будет пересчитано на основе форм тела, массы и центра масс.
\ **Примечание:** Чтобы удалить тело из пространства, не добавляя его обратно в другое место, используйте ``PhysicsServer2D.body_set_space(body, RID())``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_state:
.. rst-class:: classref-method
|void| **body_set_state**\ (\ body\: :ref:`RID<class_RID>`, state\: :ref:`BodyState<enum_PhysicsServer2D_BodyState>`, value\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_state>`
Устанавливает значение состояния тела.
\ **Примечание:** Изменение состояния не вступает в силу немедленно. Состояние изменится в следующем физическом кадре.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_set_state_sync_callback:
.. rst-class:: classref-method
|void| **body_set_state_sync_callback**\ (\ body\: :ref:`RID<class_RID>`, callable\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_PhysicsServer2D_method_body_set_state_sync_callback>`
Устанавливает функцию обратного вызова синхронизации состояния тела на ``callable``. Используйте пустой :ref:`Callable<class_Callable>` (``Callable()``), чтобы очистить обратный вызов.
Функция ``callable`` будет вызываться каждый физический кадр, предполагая, что тело было активно во время предыдущего физического тика, и может использоваться для получения последнего состояния с физического сервера.
Функция ``callable`` должна принимать следующие параметры:
1. ``state``: :ref:`PhysicsDirectBodyState2D<class_PhysicsDirectBodyState2D>`, используемый для получения состояния тела.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_body_test_motion:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **body_test_motion**\ (\ body\: :ref:`RID<class_RID>`, parameters\: :ref:`PhysicsTestMotionParameters2D<class_PhysicsTestMotionParameters2D>`, result\: :ref:`PhysicsTestMotionResult2D<class_PhysicsTestMotionResult2D>` = null\ ) :ref:`🔗<class_PhysicsServer2D_method_body_test_motion>`
Возвращает ``true``, если столкновение возникнет в результате перемещения тела по вектору движения из заданной точки в пространстве. См. :ref:`PhysicsTestMotionParameters2D<class_PhysicsTestMotionParameters2D>` для доступных параметров движения. При желании можно передать объект :ref:`PhysicsTestMotionResult2D<class_PhysicsTestMotionResult2D>`, который будет использоваться для хранения информации о полученном столкновении.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_capsule_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **capsule_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_capsule_shape_create>`
Создает форму капсулы 2D на физическом сервере и возвращает :ref:`RID<class_RID>`, который ее идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать высоту и радиус капсулы.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_circle_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **circle_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_circle_shape_create>`
Создает 2D-круг на физическом сервере и возвращает :ref:`RID<class_RID>`, который его идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать радиус круга.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_concave_polygon_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **concave_polygon_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_concave_polygon_shape_create>`
Создает 2D вогнутую многоугольную форму на физическом сервере и возвращает :ref:`RID<class_RID>`, который ее идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать сегменты вогнутого многоугольника.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_convex_polygon_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **convex_polygon_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_convex_polygon_shape_create>`
Создает 2D выпуклую многоугольную форму на физическом сервере и возвращает :ref:`RID<class_RID>`, который ее идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>` для установки точек выпуклого многоугольника.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_damped_spring_joint_get_param:
.. rst-class:: classref-method
:ref:`float<class_float>` **damped_spring_joint_get_param**\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_damped_spring_joint_get_param>`
Возвращает значение заданного параметра демпфированного пружинного соединения (spring joint).
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_damped_spring_joint_set_param:
.. rst-class:: classref-method
|void| **damped_spring_joint_set_param**\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`DampedSpringParam<enum_PhysicsServer2D_DampedSpringParam>`, value\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_damped_spring_joint_set_param>`
Устанавливает значение заданного параметра демпфированного пружинного соединения (spring joint).
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_free_rid:
.. rst-class:: classref-method
|void| **free_rid**\ (\ rid\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_free_rid>`
Уничтожает любой из объектов, созданных PhysicsServer2D. Если переданный :ref:`RID<class_RID>` не является одним из объектов, которые могут быть созданы PhysicsServer2D, на консоль будет выведена ошибка.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_get_process_info:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_process_info**\ (\ process_info\: :ref:`ProcessInfo<enum_PhysicsServer2D_ProcessInfo>`\ ) :ref:`🔗<class_PhysicsServer2D_method_get_process_info>`
Возвращает значение состояния физического движка, заданное ``process_info``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_clear:
.. rst-class:: classref-method
|void| **joint_clear**\ (\ joint\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_clear>`
Уничтожает соединение с указанным :ref:`RID<class_RID>`, создает новое неинициализированное соединение и заставляет :ref:`RID<class_RID>` ссылаться на это новое соединение.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **joint_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_create>`
Создает 2D-соединение на физическом сервере и возвращает :ref:`RID<class_RID>`, который его идентифицирует. Чтобы задать тип соединения, используйте :ref:`joint_make_damped_spring()<class_PhysicsServer2D_method_joint_make_damped_spring>`, :ref:`joint_make_groove()<class_PhysicsServer2D_method_joint_make_groove>` или :ref:`joint_make_pin()<class_PhysicsServer2D_method_joint_make_pin>`. Используйте :ref:`joint_set_param()<class_PhysicsServer2D_method_joint_set_param>` для задания общих параметров соединения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_disable_collisions_between_bodies:
.. rst-class:: classref-method
|void| **joint_disable_collisions_between_bodies**\ (\ joint\: :ref:`RID<class_RID>`, disable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_disable_collisions_between_bodies>`
Устанавливает, будут ли тела, прикрепленные к :ref:`Joint2D<class_Joint2D>`, сталкиваться друг с другом.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_get_param:
.. rst-class:: classref-method
:ref:`float<class_float>` **joint_get_param**\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`JointParam<enum_PhysicsServer2D_JointParam>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_joint_get_param>`
Возвращает значение указанного параметра соединения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_get_type:
.. rst-class:: classref-method
:ref:`JointType<enum_PhysicsServer2D_JointType>` **joint_get_type**\ (\ joint\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_joint_get_type>`
Возвращает тип соединения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_is_disabled_collisions_between_bodies:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **joint_is_disabled_collisions_between_bodies**\ (\ joint\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_joint_is_disabled_collisions_between_bodies>`
Возвращает, будут ли тела, прикрепленные к :ref:`Joint2D<class_Joint2D>`, сталкиваться друг с другом.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_make_damped_spring:
.. rst-class:: classref-method
|void| **joint_make_damped_spring**\ (\ joint\: :ref:`RID<class_RID>`, anchor_a\: :ref:`Vector2<class_Vector2>`, anchor_b\: :ref:`Vector2<class_Vector2>`, body_a\: :ref:`RID<class_RID>`, body_b\: :ref:`RID<class_RID>` = RID()\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_make_damped_spring>`
Делает сочленение демпфированным пружинным сочленением, прикрепленным в точке ``anchor_a`` (заданной в глобальных координатах) на теле ``body_a`` и в точке ``anchor_b`` (заданной в глобальных координатах) на теле ``body_b``. Чтобы задать параметры, специфичные для демпфированной пружины, см. :ref:`damped_spring_joint_set_param()<class_PhysicsServer2D_method_damped_spring_joint_set_param>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_make_groove:
.. rst-class:: classref-method
|void| **joint_make_groove**\ (\ joint\: :ref:`RID<class_RID>`, groove1_a\: :ref:`Vector2<class_Vector2>`, groove2_a\: :ref:`Vector2<class_Vector2>`, anchor_b\: :ref:`Vector2<class_Vector2>`, body_a\: :ref:`RID<class_RID>` = RID(), body_b\: :ref:`RID<class_RID>` = RID()\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_make_groove>`
Делает соединение пазовым.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_make_pin:
.. rst-class:: classref-method
|void| **joint_make_pin**\ (\ joint\: :ref:`RID<class_RID>`, anchor\: :ref:`Vector2<class_Vector2>`, body_a\: :ref:`RID<class_RID>`, body_b\: :ref:`RID<class_RID>` = RID()\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_make_pin>`
Делает сочленение штифтовым. Если ``body_b`` — пустой :ref:`RID<class_RID>`, то ``body_a`` прикрепляется к точке ``anchor`` (заданной в глобальных координатах); в противном случае ``body_a`` прикрепляется к ``body_b`` в точке ``anchor`` (заданной в глобальных координатах). Чтобы задать параметры, специфичные для штифтового сочленения, см. :ref:`pin_joint_set_param()<class_PhysicsServer2D_method_pin_joint_set_param>`.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_joint_set_param:
.. rst-class:: classref-method
|void| **joint_set_param**\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`JointParam<enum_PhysicsServer2D_JointParam>`, value\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_joint_set_param>`
Устанавливает значение указанного параметра соединения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_pin_joint_get_flag:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **pin_joint_get_flag**\ (\ joint\: :ref:`RID<class_RID>`, flag\: :ref:`PinJointFlag<enum_PhysicsServer2D_PinJointFlag>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_pin_joint_get_flag>`
Получает флаг штифтового соединения (pin joint).
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_pin_joint_get_param:
.. rst-class:: classref-method
:ref:`float<class_float>` **pin_joint_get_param**\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_pin_joint_get_param>`
Возвращает значение параметра штифтового соединения (pin joint).
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_pin_joint_set_flag:
.. rst-class:: classref-method
|void| **pin_joint_set_flag**\ (\ joint\: :ref:`RID<class_RID>`, flag\: :ref:`PinJointFlag<enum_PhysicsServer2D_PinJointFlag>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_pin_joint_set_flag>`
Устанавливает флаг штифтового соединения (pin joint).
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_pin_joint_set_param:
.. rst-class:: classref-method
|void| **pin_joint_set_param**\ (\ joint\: :ref:`RID<class_RID>`, param\: :ref:`PinJointParam<enum_PhysicsServer2D_PinJointParam>`, value\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_pin_joint_set_param>`
Устанавливает параметр штифтового соединения.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_rectangle_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **rectangle_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_rectangle_shape_create>`
Создает 2D-прямоугольную форму на физическом сервере и возвращает :ref:`RID<class_RID>`, который ее идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать половинные размеры прямоугольника.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_segment_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **segment_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_segment_shape_create>`
Создает форму 2D-сегмента на физическом сервере и возвращает :ref:`RID<class_RID>`, который его идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать начальную и конечную точки сегмента.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_separation_ray_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **separation_ray_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_separation_ray_shape_create>`
Создает форму луча разделения 2D на физическом сервере и возвращает :ref:`RID<class_RID>`, который ее идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать свойства формы ``length`` и ``slide_on_slope``.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_set_active:
.. rst-class:: classref-method
|void| **set_active**\ (\ active\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_set_active>`
Активирует или деактивирует сервер 2D-физики. Если ``active`` равен ``false``, то сервер физики не будет ничего делать на своем шаге физики.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_shape_get_data:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **shape_get_data**\ (\ shape\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_shape_get_data>`
Возвращает данные формы, которые определяют конфигурацию формы, например, полупространства прямоугольника или сегменты вогнутой формы. См. :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>` для точного формата этих данных в каждом случае.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_shape_get_type:
.. rst-class:: classref-method
:ref:`ShapeType<enum_PhysicsServer2D_ShapeType>` **shape_get_type**\ (\ shape\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_shape_get_type>`
Возвращает тип фигуры.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_shape_set_data:
.. rst-class:: classref-method
|void| **shape_set_data**\ (\ shape\: :ref:`RID<class_RID>`, data\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_PhysicsServer2D_method_shape_set_data>`
Устанавливает данные формы, которые определяют конфигурацию формы. ``data``, которые необходимо передать, зависят от типа формы (см. :ref:`shape_get_type()<class_PhysicsServer2D_method_shape_get_type>`):
- :ref:`SHAPE_WORLD_BOUNDARY<class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY>`: массив длины два, содержащий направление :ref:`Vector2<class_Vector2>` ``normal`` и расстояние :ref:`float<class_float>` ``d``,
- :ref:`SHAPE_SEPARATION_RAY<class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY>`: словарь, содержащий ключ ``length`` со значением :ref:`float<class_float>` и ключ ``slide_on_slope`` со значением :ref:`bool<class_bool>`,
- :ref:`SHAPE_SEGMENT<class_PhysicsServer2D_constant_SHAPE_SEGMENT>`: :ref:`Rect2<class_Rect2>` ``rect``, содержащий первую точку сегмента в ``rect.position`` и вторую точку сегмента в ``rect.size``,
- :ref:`SHAPE_CIRCLE<class_PhysicsServer2D_constant_SHAPE_CIRCLE>`: :ref:`float<class_float>` ``radius``,
- :ref:`SHAPE_RECTANGLE<class_PhysicsServer2D_constant_SHAPE_RECTANGLE>`: :ref:`Vector2<class_Vector2>` ``half_extents``,
- :ref:`SHAPE_CAPSULE<class_PhysicsServer2D_constant_SHAPE_CAPSULE>`: массив длиной два (или :ref:`Vector2<class_Vector2>`), содержащий :ref:`float<class_float>` ``height (высоту)`` и :ref:`float<class_float>` ``radius (радиус)``,
- :ref:`SHAPE_CONVEX_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON>`: либо :ref:`PackedVector2Array<class_PackedVector2Array>` точек, определяющих выпуклый многоугольник в порядке против часовой стрелки (внешняя нормаль по часовой стрелке каждого сегмента, образованного последовательными точками, вычисляется внутренне), либо :ref:`PackedFloat32Array<class_PackedFloat32Array>` длины, кратной четырем, так что каждый кортеж из 4 :ref:`float<class_float>` содержит координаты точки, за которыми следуют координаты вектора внешней нормали по часовой стрелке к сегменту между текущей точкой и следующей точкой,
- :ref:`SHAPE_CONCAVE_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONCAVE_POLYGON>`: :ref:`PackedVector2Array<class_PackedVector2Array>` длины, делящейся на два (каждая пара точек образует один сегмент).
\ **Предупреждение:** В случае :ref:`SHAPE_CONVEX_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON>` этот метод не проверяет, действительно ли предоставленные точки образуют выпуклый многоугольник (в отличие от свойства :ref:`CollisionPolygon2D.polygon<class_CollisionPolygon2D_property_polygon>`).
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_space_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **space_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_space_create>`
Создает 2D-пространство на физическом сервере и возвращает :ref:`RID<class_RID>`, который его идентифицирует. Пространство содержит тела и области и управляет пошаговым выполнением физической симуляции объектов в нем.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_space_get_direct_state:
.. rst-class:: classref-method
:ref:`PhysicsDirectSpaceState2D<class_PhysicsDirectSpaceState2D>` **space_get_direct_state**\ (\ space\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_PhysicsServer2D_method_space_get_direct_state>`
Возвращает состояние пространства, :ref:`PhysicsDirectSpaceState2D<class_PhysicsDirectSpaceState2D>`. Этот объект может использоваться для запросов на столкновение/пересечение.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_space_get_param:
.. rst-class:: classref-method
:ref:`float<class_float>` **space_get_param**\ (\ space\: :ref:`RID<class_RID>`, param\: :ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_space_get_param>`
Возвращает значение указанного параметра пространства.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_space_is_active:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **space_is_active**\ (\ space\: :ref:`RID<class_RID>`\ ) |const| :ref:`🔗<class_PhysicsServer2D_method_space_is_active>`
Возвращает ``true``, если пространство активно.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_space_set_active:
.. rst-class:: classref-method
|void| **space_set_active**\ (\ space\: :ref:`RID<class_RID>`, active\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_PhysicsServer2D_method_space_set_active>`
Активирует или деактивирует пространство. Если ``active`` равен ``false``, то физический сервер не будет ничего делать с этим пространством на своем физическом шаге.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_space_set_param:
.. rst-class:: classref-method
|void| **space_set_param**\ (\ space\: :ref:`RID<class_RID>`, param\: :ref:`SpaceParameter<enum_PhysicsServer2D_SpaceParameter>`, value\: :ref:`float<class_float>`\ ) :ref:`🔗<class_PhysicsServer2D_method_space_set_param>`
Устанавливает значение указанного параметра пространства.
.. rst-class:: classref-item-separator
----
.. _class_PhysicsServer2D_method_world_boundary_shape_create:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **world_boundary_shape_create**\ (\ ) :ref:`🔗<class_PhysicsServer2D_method_world_boundary_shape_create>`
Создает форму границы 2D-мира на физическом сервере и возвращает :ref:`RID<class_RID>`, который ее идентифицирует. Используйте :ref:`shape_set_data()<class_PhysicsServer2D_method_shape_set_data>`, чтобы задать нормальное направление формы и свойства расстояния.
.. |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 (Нет возвращаемого значения.)`