:github_url: hide .. _class_PhysicsServer2D: PhysicsServer2D =============== **Наследует:** :ref:`Object` **Наследуется от:** :ref:`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`\ (\ area\: :ref:`RID`, shape\: :ref:`RID`, transform\: :ref:`Transform2D` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool` = false\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_attach_canvas_instance_id`\ (\ area\: :ref:`RID`, id\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_attach_object_instance_id`\ (\ area\: :ref:`RID`, id\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_clear_shapes`\ (\ area\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`area_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`area_get_canvas_instance_id`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`area_get_collision_layer`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`area_get_collision_mask`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`area_get_object_instance_id`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`area_get_param`\ (\ area\: :ref:`RID`, param\: :ref:`AreaParameter`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`area_get_shape`\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`area_get_shape_count`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`area_get_shape_transform`\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`area_get_space`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`area_get_transform`\ (\ area\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_remove_shape`\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_area_monitor_callback`\ (\ area\: :ref:`RID`, callback\: :ref:`Callable`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_collision_layer`\ (\ area\: :ref:`RID`, layer\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_collision_mask`\ (\ area\: :ref:`RID`, mask\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_monitor_callback`\ (\ area\: :ref:`RID`, callback\: :ref:`Callable`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_monitorable`\ (\ area\: :ref:`RID`, monitorable\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_param`\ (\ area\: :ref:`RID`, param\: :ref:`AreaParameter`, value\: :ref:`Variant`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_shape`\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`, shape\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_shape_disabled`\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`, disabled\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_shape_transform`\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`, transform\: :ref:`Transform2D`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_space`\ (\ area\: :ref:`RID`, space\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`area_set_transform`\ (\ area\: :ref:`RID`, transform\: :ref:`Transform2D`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_add_collision_exception`\ (\ body\: :ref:`RID`, excepted_body\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_add_constant_central_force`\ (\ body\: :ref:`RID`, force\: :ref:`Vector2`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_add_constant_force`\ (\ body\: :ref:`RID`, force\: :ref:`Vector2`, position\: :ref:`Vector2` = Vector2(0, 0)\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_add_constant_torque`\ (\ body\: :ref:`RID`, torque\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_add_shape`\ (\ body\: :ref:`RID`, shape\: :ref:`RID`, transform\: :ref:`Transform2D` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool` = false\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_apply_central_force`\ (\ body\: :ref:`RID`, force\: :ref:`Vector2`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_apply_central_impulse`\ (\ body\: :ref:`RID`, impulse\: :ref:`Vector2`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_apply_force`\ (\ body\: :ref:`RID`, force\: :ref:`Vector2`, position\: :ref:`Vector2` = Vector2(0, 0)\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_apply_impulse`\ (\ body\: :ref:`RID`, impulse\: :ref:`Vector2`, position\: :ref:`Vector2` = Vector2(0, 0)\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_apply_torque`\ (\ body\: :ref:`RID`, torque\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_apply_torque_impulse`\ (\ body\: :ref:`RID`, impulse\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_attach_canvas_instance_id`\ (\ body\: :ref:`RID`, id\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_attach_object_instance_id`\ (\ body\: :ref:`RID`, id\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_clear_shapes`\ (\ body\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`body_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`body_get_canvas_instance_id`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`body_get_collision_layer`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`body_get_collision_mask`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`body_get_collision_priority`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`body_get_constant_force`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`body_get_constant_torque`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`CCDMode` | :ref:`body_get_continuous_collision_detection_mode`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PhysicsDirectBodyState2D` | :ref:`body_get_direct_state`\ (\ body\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`body_get_max_contacts_reported`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`BodyMode` | :ref:`body_get_mode`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`body_get_object_instance_id`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`body_get_param`\ (\ body\: :ref:`RID`, param\: :ref:`BodyParameter`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`body_get_shape`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`body_get_shape_count`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`body_get_shape_transform`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`body_get_space`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`body_get_state`\ (\ body\: :ref:`RID`, state\: :ref:`BodyState`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`body_is_omitting_force_integration`\ (\ body\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_remove_collision_exception`\ (\ body\: :ref:`RID`, excepted_body\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_remove_shape`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_reset_mass_properties`\ (\ body\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_axis_velocity`\ (\ body\: :ref:`RID`, axis_velocity\: :ref:`Vector2`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_collision_layer`\ (\ body\: :ref:`RID`, layer\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_collision_mask`\ (\ body\: :ref:`RID`, mask\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_collision_priority`\ (\ body\: :ref:`RID`, priority\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_constant_force`\ (\ body\: :ref:`RID`, force\: :ref:`Vector2`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_constant_torque`\ (\ body\: :ref:`RID`, torque\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_continuous_collision_detection_mode`\ (\ body\: :ref:`RID`, mode\: :ref:`CCDMode`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_force_integration_callback`\ (\ body\: :ref:`RID`, callable\: :ref:`Callable`, userdata\: :ref:`Variant` = null\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_max_contacts_reported`\ (\ body\: :ref:`RID`, amount\: :ref:`int`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_mode`\ (\ body\: :ref:`RID`, mode\: :ref:`BodyMode`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_omit_force_integration`\ (\ body\: :ref:`RID`, enable\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_param`\ (\ body\: :ref:`RID`, param\: :ref:`BodyParameter`, value\: :ref:`Variant`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_shape`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`, shape\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_shape_as_one_way_collision`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`, enable\: :ref:`bool`, margin\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_shape_disabled`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`, disabled\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_shape_transform`\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`, transform\: :ref:`Transform2D`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_space`\ (\ body\: :ref:`RID`, space\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_state`\ (\ body\: :ref:`RID`, state\: :ref:`BodyState`, value\: :ref:`Variant`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`body_set_state_sync_callback`\ (\ body\: :ref:`RID`, callable\: :ref:`Callable`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`body_test_motion`\ (\ body\: :ref:`RID`, parameters\: :ref:`PhysicsTestMotionParameters2D`, result\: :ref:`PhysicsTestMotionResult2D` = null\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`capsule_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`circle_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`concave_polygon_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`convex_polygon_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`damped_spring_joint_get_param`\ (\ joint\: :ref:`RID`, param\: :ref:`DampedSpringParam`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`damped_spring_joint_set_param`\ (\ joint\: :ref:`RID`, param\: :ref:`DampedSpringParam`, value\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`free_rid`\ (\ rid\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_process_info`\ (\ process_info\: :ref:`ProcessInfo`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`joint_clear`\ (\ joint\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`joint_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`joint_disable_collisions_between_bodies`\ (\ joint\: :ref:`RID`, disable\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`joint_get_param`\ (\ joint\: :ref:`RID`, param\: :ref:`JointParam`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`JointType` | :ref:`joint_get_type`\ (\ joint\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`joint_is_disabled_collisions_between_bodies`\ (\ joint\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`joint_make_damped_spring`\ (\ joint\: :ref:`RID`, anchor_a\: :ref:`Vector2`, anchor_b\: :ref:`Vector2`, body_a\: :ref:`RID`, body_b\: :ref:`RID` = RID()\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`joint_make_groove`\ (\ joint\: :ref:`RID`, groove1_a\: :ref:`Vector2`, groove2_a\: :ref:`Vector2`, anchor_b\: :ref:`Vector2`, body_a\: :ref:`RID` = RID(), body_b\: :ref:`RID` = RID()\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`joint_make_pin`\ (\ joint\: :ref:`RID`, anchor\: :ref:`Vector2`, body_a\: :ref:`RID`, body_b\: :ref:`RID` = RID()\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`joint_set_param`\ (\ joint\: :ref:`RID`, param\: :ref:`JointParam`, value\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`pin_joint_get_flag`\ (\ joint\: :ref:`RID`, flag\: :ref:`PinJointFlag`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`pin_joint_get_param`\ (\ joint\: :ref:`RID`, param\: :ref:`PinJointParam`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`pin_joint_set_flag`\ (\ joint\: :ref:`RID`, flag\: :ref:`PinJointFlag`, enabled\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`pin_joint_set_param`\ (\ joint\: :ref:`RID`, param\: :ref:`PinJointParam`, value\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`rectangle_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`segment_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`separation_ray_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_active`\ (\ active\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`shape_get_data`\ (\ shape\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`ShapeType` | :ref:`shape_get_type`\ (\ shape\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`shape_set_data`\ (\ shape\: :ref:`RID`, data\: :ref:`Variant`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`space_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PhysicsDirectSpaceState2D` | :ref:`space_get_direct_state`\ (\ space\: :ref:`RID`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`space_get_param`\ (\ space\: :ref:`RID`, param\: :ref:`SpaceParameter`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`space_is_active`\ (\ space\: :ref:`RID`\ ) |const| | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`space_set_active`\ (\ space\: :ref:`RID`, active\: :ref:`bool`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`space_set_param`\ (\ space\: :ref:`RID`, param\: :ref:`SpaceParameter`, value\: :ref:`float`\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`world_boundary_shape_create`\ (\ ) | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Перечисления ------------------------ .. _enum_PhysicsServer2D_SpaceParameter: .. rst-class:: classref-enumeration enum **SpaceParameter**: :ref:`🔗` .. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_RECYCLE_RADIUS: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_CONTACT_RECYCLE_RADIUS** = ``0`` Константа для установки/получения максимального расстояния, на которое должна переместиться пара тел, прежде чем их статус столкновения придется пересчитать. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/contact_recycle_radius`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_MAX_SEPARATION: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_CONTACT_MAX_SEPARATION** = ``1`` Константа для установки/получения максимального расстояния между фигурами, на котором они могут находиться, прежде чем они будут считаться разделенными, а контакт будет отброшен. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/contact_max_separation`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION** = ``2`` Константа для установки/получения максимального расстояния, на которое фигура может проникнуть в другую фигуру, прежде чем это будет считаться столкновением. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/contact_max_allowed_penetration`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_CONTACT_DEFAULT_BIAS: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_CONTACT_DEFAULT_BIAS** = ``3`` Константа для установки/получения смещения решателя по умолчанию для всех физических контактов. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после наложения, чтобы избежать их оставления в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/default_contact_bias`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD** = ``4`` Константа для установки/получения пороговой линейной скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/sleep_threshold_linear`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD** = ``5`` Константа для установки/получения пороговой угловой скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/sleep_threshold_angular`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_BODY_TIME_TO_SLEEP: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_BODY_TIME_TO_SLEEP** = ``6`` Константа для установки/получения максимального времени активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении этого времени. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/time_before_sleep`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS** = ``7`` Константа для установки/получения смещения решателя по умолчанию для всех физических ограничений. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после нарушения ограничения, чтобы не оставлять их в этом состоянии из-за числовой неточности. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/default_constraint_bias`. .. _class_PhysicsServer2D_constant_SPACE_PARAM_SOLVER_ITERATIONS: .. rst-class:: classref-enumeration-constant :ref:`SpaceParameter` **SPACE_PARAM_SOLVER_ITERATIONS** = ``8`` Константа для установки/получения количества итераций решателя для всех контактов и ограничений. Чем больше количество итераций, тем точнее будут столкновения. Однако большее количество итераций требует большей мощности ЦП, что может снизить производительность. Значение этого параметра по умолчанию — :ref:`ProjectSettings.physics/2d/solver/solver_iterations`. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_ShapeType: .. rst-class:: classref-enumeration enum **ShapeType**: :ref:`🔗` .. _class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_WORLD_BOUNDARY** = ``0`` Это константа для создания форм границ мира. Форма границ мира — это *бесконечная* линия с начальной точкой и нормалью. Таким образом, ее можно использовать для проверок спереди/сзади. .. _class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_SEPARATION_RAY** = ``1`` Это константа для создания форм разделительного луча. Разделительный луч определяется длиной и отделяет себя от того, что касается его дальней конечной точки. Полезно для контроллеров персонажей. .. _class_PhysicsServer2D_constant_SHAPE_SEGMENT: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_SEGMENT** = ``2`` Это константа для создания сегментных форм. Сегментная форма — это *конечная* линия от точки A до точки B. Ее можно проверить на пересечения. .. _class_PhysicsServer2D_constant_SHAPE_CIRCLE: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_CIRCLE** = ``3`` Это константа для создания круговых форм. Круговая форма имеет только радиус. Ее можно использовать для пересечений и внутренних/внешних проверок. .. _class_PhysicsServer2D_constant_SHAPE_RECTANGLE: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_RECTANGLE** = ``4`` Это константа для создания прямоугольных форм. Прямоугольная форма определяется шириной и высотой. Ее можно использовать для пересечений и внутренних/внешних проверок. .. _class_PhysicsServer2D_constant_SHAPE_CAPSULE: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_CAPSULE** = ``5`` Это константа для создания форм капсул. Форма капсулы определяется радиусом и длиной. Ее можно использовать для пересечений и внутренних/внешних проверок. .. _class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_CONVEX_POLYGON** = ``6`` Это константа для создания выпуклых многоугольных фигур. Многоугольник определяется списком точек. Его можно использовать для пересечений и внутренних/внешних проверок. .. _class_PhysicsServer2D_constant_SHAPE_CONCAVE_POLYGON: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_CONCAVE_POLYGON** = ``7`` Это константа для создания вогнутых многоугольных фигур. Многоугольник определяется списком точек. Его можно использовать для проверки пересечений, но не для проверки внутри/снаружи. .. _class_PhysicsServer2D_constant_SHAPE_CUSTOM: .. rst-class:: classref-enumeration-constant :ref:`ShapeType` **SHAPE_CUSTOM** = ``8`` Эта константа используется внутри движка. Любая попытка создать такую форму приведет к ошибке. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_AreaParameter: .. rst-class:: classref-enumeration enum **AreaParameter**: :ref:`🔗` .. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_OVERRIDE_MODE: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_GRAVITY_OVERRIDE_MODE** = ``0`` Константа для установки/получения режима переопределения гравитации в области. См. :ref:`AreaSpaceOverrideMode` для возможных значений. Значение этого параметра по умолчанию — :ref:`AREA_SPACE_OVERRIDE_DISABLED`. .. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_GRAVITY** = ``1`` Константа для установки/получения силы гравитации в области. Значение этого параметра по умолчанию ``9.80665``. .. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_VECTOR: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_GRAVITY_VECTOR** = ``2`` Константа для установки/получения вектора/центра гравитации в области. Значение этого параметра по умолчанию: ``Vector2(0, -1)``. .. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_IS_POINT: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_GRAVITY_IS_POINT** = ``3`` Константа для установки/получения того, является ли вектор гравитации области направлением или центральной точкой. Значение этого параметра по умолчанию — ``false``. .. _class_PhysicsServer2D_constant_AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE** = ``4`` Константа для установки/получения расстояния, на котором сила гравитации равна силе гравитации, контролируемой :ref:`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` **AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE** = ``5`` Константа для установки/получения режима переопределения линейного затухания в области. См. :ref:`AreaSpaceOverrideMode` для возможных значений. Значение этого параметра по умолчанию — :ref:`AREA_SPACE_OVERRIDE_DISABLED`. .. _class_PhysicsServer2D_constant_AREA_PARAM_LINEAR_DAMP: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_LINEAR_DAMP** = ``6`` Константа для установки/получения линейного коэффициента затухания области. Значение этого параметра по умолчанию ``0.1``. .. _class_PhysicsServer2D_constant_AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE** = ``7`` Константа для установки/получения режима переопределения углового демпфирования в области. См. :ref:`AreaSpaceOverrideMode` для возможных значений. Значение этого параметра по умолчанию — :ref:`AREA_SPACE_OVERRIDE_DISABLED`. .. _class_PhysicsServer2D_constant_AREA_PARAM_ANGULAR_DAMP: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_ANGULAR_DAMP** = ``8`` Константа для установки/получения углового коэффициента затухания области. Значение этого параметра по умолчанию ``1.0``. .. _class_PhysicsServer2D_constant_AREA_PARAM_PRIORITY: .. rst-class:: classref-enumeration-constant :ref:`AreaParameter` **AREA_PARAM_PRIORITY** = ``9`` Константа для установки/получения приоритета (порядка обработки) области. Значение этого параметра по умолчанию ``0``. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_AreaSpaceOverrideMode: .. rst-class:: classref-enumeration enum **AreaSpaceOverrideMode**: :ref:`🔗` .. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`AreaSpaceOverrideMode` **AREA_SPACE_OVERRIDE_DISABLED** = ``0`` Эта область не влияет на гравитацию/влажность. Это, как правило, области, которые существуют только для обнаружения столкновений и объектов, входящих или выходящих из них. .. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_COMBINE: .. rst-class:: classref-enumeration-constant :ref:`AreaSpaceOverrideMode` **AREA_SPACE_OVERRIDE_COMBINE** = ``1`` Эта область добавляет свои значения гравитации/влажности к тому, что было рассчитано до сих пор. Таким образом, многие перекрывающиеся области могут объединить свою физику, чтобы создать интересные эффекты. .. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_COMBINE_REPLACE: .. rst-class:: classref-enumeration-constant :ref:`AreaSpaceOverrideMode` **AREA_SPACE_OVERRIDE_COMBINE_REPLACE** = ``2`` Эта область добавляет свои значения гравитации/влажности ко всему, что было рассчитано до сих пор. Затем перестает учитывать остальные области, даже область по умолчанию. .. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_REPLACE: .. rst-class:: classref-enumeration-constant :ref:`AreaSpaceOverrideMode` **AREA_SPACE_OVERRIDE_REPLACE** = ``3`` Эта область заменяет любую гравитацию/влажность, даже заданную по умолчанию, и прекращает учитывать остальные области. .. _class_PhysicsServer2D_constant_AREA_SPACE_OVERRIDE_REPLACE_COMBINE: .. rst-class:: classref-enumeration-constant :ref:`AreaSpaceOverrideMode` **AREA_SPACE_OVERRIDE_REPLACE_COMBINE** = ``4`` Эта область заменяет все рассчитанные до сих пор значения гравитации/влажности, но продолжает рассчитывать остальные области, вплоть до области по умолчанию. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_BodyMode: .. rst-class:: classref-enumeration enum **BodyMode**: :ref:`🔗` .. _class_PhysicsServer2D_constant_BODY_MODE_STATIC: .. rst-class:: classref-enumeration-constant :ref:`BodyMode` **BODY_MODE_STATIC** = ``0`` Константа для статических тел. В этом режиме тело может перемещаться только пользовательским кодом и не сталкивается с другими телами на своем пути при перемещении. .. _class_PhysicsServer2D_constant_BODY_MODE_KINEMATIC: .. rst-class:: classref-enumeration-constant :ref:`BodyMode` **BODY_MODE_KINEMATIC** = ``1`` Константа для кинематических тел. В этом режиме тело может перемещаться только пользовательским кодом и сталкиваться с другими телами на своем пути. .. _class_PhysicsServer2D_constant_BODY_MODE_RIGID: .. rst-class:: classref-enumeration-constant :ref:`BodyMode` **BODY_MODE_RIGID** = ``2`` Постоянная для твердых тел. В этом режиме тело может толкаться другими телами и к нему могут быть приложены силы. .. _class_PhysicsServer2D_constant_BODY_MODE_RIGID_LINEAR: .. rst-class:: classref-enumeration-constant :ref:`BodyMode` **BODY_MODE_RIGID_LINEAR** = ``3`` Постоянная для линейных твердых тел. В этом режиме тело не может вращаться, и только его линейная скорость подвержена влиянию внешних сил. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_BodyParameter: .. rst-class:: classref-enumeration enum **BodyParameter**: :ref:`🔗` .. _class_PhysicsServer2D_constant_BODY_PARAM_BOUNCE: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_BOUNCE** = ``0`` Константа для установки/получения коэффициента отскока тела. Значение этого параметра по умолчанию ``0.0``. .. _class_PhysicsServer2D_constant_BODY_PARAM_FRICTION: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_FRICTION** = ``1`` Константа для установки/получения трения тела. Значение этого параметра по умолчанию ``1.0``. .. _class_PhysicsServer2D_constant_BODY_PARAM_MASS: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_MASS** = ``2`` Константа для установки/получения массы тела. Значение этого параметра по умолчанию — ``1.0``. Если режим тела установлен на :ref:`BODY_MODE_RIGID`, то установка этого параметра будет иметь следующие дополнительные эффекты: - Если параметр :ref:`BODY_PARAM_CENTER_OF_MASS` никогда не был задан явно, то значение этого параметра будет пересчитано на основе форм тела. - Если параметр :ref:`BODY_PARAM_INERTIA` установлен на значение ``<= 0.0``, то значение этого параметра будет пересчитано на основе форм тела, массы и центра масс. .. _class_PhysicsServer2D_constant_BODY_PARAM_INERTIA: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_INERTIA** = ``3`` Константа для установки/получения инерции тела. Значение этого параметра по умолчанию ``0.0``. Если инерция тела установлена на значение ``<= 0.0``, то инерция будет пересчитана на основе формы тела, массы и центра масс. .. _class_PhysicsServer2D_constant_BODY_PARAM_CENTER_OF_MASS: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_CENTER_OF_MASS** = ``4`` Константа для установки/получения положения центра масс тела в его локальной системе координат. Значение этого параметра по умолчанию — ``Vector2(0, 0)``. Если этот параметр не задан явно, он пересчитывается на основе формы тела при установке параметра :ref:`BODY_PARAM_MASS` или при вызове :ref:`body_set_space()`. .. _class_PhysicsServer2D_constant_BODY_PARAM_GRAVITY_SCALE: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_GRAVITY_SCALE** = ``5`` Константа для установки/получения множителя гравитации тела. Значение этого параметра по умолчанию ``1.0``. .. _class_PhysicsServer2D_constant_BODY_PARAM_LINEAR_DAMP_MODE: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_LINEAR_DAMP_MODE** = ``6`` Константа для установки/получения линейного режима демпфирования тела. См. :ref:`BodyDampMode` для возможных значений. Значение этого параметра по умолчанию — :ref:`BODY_DAMP_MODE_COMBINE`. .. _class_PhysicsServer2D_constant_BODY_PARAM_ANGULAR_DAMP_MODE: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_ANGULAR_DAMP_MODE** = ``7`` Константа для установки/получения режима углового демпфирования тела. См. :ref:`BodyDampMode` для возможных значений. Значение этого параметра по умолчанию — :ref:`BODY_DAMP_MODE_COMBINE`. .. _class_PhysicsServer2D_constant_BODY_PARAM_LINEAR_DAMP: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_LINEAR_DAMP** = ``8`` Константа для установки/получения линейного коэффициента затухания тела. Значение этого параметра по умолчанию ``0.0``. .. _class_PhysicsServer2D_constant_BODY_PARAM_ANGULAR_DAMP: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_ANGULAR_DAMP** = ``9`` Константа для установки/получения углового коэффициента демпфирования тела. Значение этого параметра по умолчанию ``0.0``. .. _class_PhysicsServer2D_constant_BODY_PARAM_MAX: .. rst-class:: classref-enumeration-constant :ref:`BodyParameter` **BODY_PARAM_MAX** = ``10`` Представляет размер перечисления :ref:`BodyParameter`. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_BodyDampMode: .. rst-class:: classref-enumeration enum **BodyDampMode**: :ref:`🔗` .. _class_PhysicsServer2D_constant_BODY_DAMP_MODE_COMBINE: .. rst-class:: classref-enumeration-constant :ref:`BodyDampMode` **BODY_DAMP_MODE_COMBINE** = ``0`` Значение демпфирования тела добавляется к любому значению, заданному в областях, или к значению по умолчанию. .. _class_PhysicsServer2D_constant_BODY_DAMP_MODE_REPLACE: .. rst-class:: classref-enumeration-constant :ref:`BodyDampMode` **BODY_DAMP_MODE_REPLACE** = ``1`` Значение демпфирования тела заменяет любое значение, заданное в областях, или значение по умолчанию. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_BodyState: .. rst-class:: classref-enumeration enum **BodyState**: :ref:`🔗` .. _class_PhysicsServer2D_constant_BODY_STATE_TRANSFORM: .. rst-class:: classref-enumeration-constant :ref:`BodyState` **BODY_STATE_TRANSFORM** = ``0`` Константа для установки/получения текущей матрицы преобразования тела. .. _class_PhysicsServer2D_constant_BODY_STATE_LINEAR_VELOCITY: .. rst-class:: classref-enumeration-constant :ref:`BodyState` **BODY_STATE_LINEAR_VELOCITY** = ``1`` Константа для установки/получения текущей линейной скорости тела. .. _class_PhysicsServer2D_constant_BODY_STATE_ANGULAR_VELOCITY: .. rst-class:: classref-enumeration-constant :ref:`BodyState` **BODY_STATE_ANGULAR_VELOCITY** = ``2`` Константа для установки/получения текущей угловой скорости тела. .. _class_PhysicsServer2D_constant_BODY_STATE_SLEEPING: .. rst-class:: classref-enumeration-constant :ref:`BodyState` **BODY_STATE_SLEEPING** = ``3`` Постоянно, чтобы заснуть/разбудить тело или узнать, спит ли оно. .. _class_PhysicsServer2D_constant_BODY_STATE_CAN_SLEEP: .. rst-class:: classref-enumeration-constant :ref:`BodyState` **BODY_STATE_CAN_SLEEP** = ``4`` Константа для установки/получения информации о том, может ли тело спать. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_JointType: .. rst-class:: classref-enumeration enum **JointType**: :ref:`🔗` .. _class_PhysicsServer2D_constant_JOINT_TYPE_PIN: .. rst-class:: classref-enumeration-constant :ref:`JointType` **JOINT_TYPE_PIN** = ``0`` Константа для создания штифтовых соединений. .. _class_PhysicsServer2D_constant_JOINT_TYPE_GROOVE: .. rst-class:: classref-enumeration-constant :ref:`JointType` **JOINT_TYPE_GROOVE** = ``1`` Константа для создания пазов. .. _class_PhysicsServer2D_constant_JOINT_TYPE_DAMPED_SPRING: .. rst-class:: classref-enumeration-constant :ref:`JointType` **JOINT_TYPE_DAMPED_SPRING** = ``2`` Константа для создания демпфирующих пружинных соединений. .. _class_PhysicsServer2D_constant_JOINT_TYPE_MAX: .. rst-class:: classref-enumeration-constant :ref:`JointType` **JOINT_TYPE_MAX** = ``3`` Представляет размер перечисления :ref:`JointType`. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_JointParam: .. rst-class:: classref-enumeration enum **JointParam**: :ref:`🔗` .. _class_PhysicsServer2D_constant_JOINT_PARAM_BIAS: .. rst-class:: classref-enumeration-constant :ref:`JointParam` **JOINT_PARAM_BIAS** = ``0`` Константа для установки/получения того, насколько быстро сочленение тянет тела назад, чтобы удовлетворить ограничение сочленения. Чем ниже значение, тем больше два тела могут тянуть сочленение. Значение этого параметра по умолчанию — ``0.0``. \ **Примечание:** В физике Godot этот параметр используется только для штифтовых и пазовых соединений. .. _class_PhysicsServer2D_constant_JOINT_PARAM_MAX_BIAS: .. rst-class:: classref-enumeration-constant :ref:`JointParam` **JOINT_PARAM_MAX_BIAS** = ``1`` Константа для установки/получения максимальной скорости, с которой сочленение может применять исправления. Значение этого параметра по умолчанию — ``3.40282e+38``. \ **Примечание:** В физике Godot этот параметр используется только для сочленений с канавками. .. _class_PhysicsServer2D_constant_JOINT_PARAM_MAX_FORCE: .. rst-class:: classref-enumeration-constant :ref:`JointParam` **JOINT_PARAM_MAX_FORCE** = ``2`` Константа для установки/получения максимальной силы, которую может использовать соединение для воздействия на два тела. Значение этого параметра по умолчанию — ``3.40282e+38``. \ **Примечание:** В физике Годо этот параметр используется только для пазов. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_PinJointParam: .. rst-class:: classref-enumeration enum **PinJointParam**: :ref:`🔗` .. _class_PhysicsServer2D_constant_PIN_JOINT_SOFTNESS: .. rst-class:: classref-enumeration-constant :ref:`PinJointParam` **PIN_JOINT_SOFTNESS** = ``0`` Константа для установки/получения того, насколько может изгибаться соединение штифтового соединения. Значение этого параметра по умолчанию — ``0.0``. .. _class_PhysicsServer2D_constant_PIN_JOINT_LIMIT_UPPER: .. rst-class:: classref-enumeration-constant :ref:`PinJointParam` **PIN_JOINT_LIMIT_UPPER** = ``1`` Максимальное вращение вокруг штифта. .. _class_PhysicsServer2D_constant_PIN_JOINT_LIMIT_LOWER: .. rst-class:: classref-enumeration-constant :ref:`PinJointParam` **PIN_JOINT_LIMIT_LOWER** = ``2`` Минимальное вращение вокруг штифта. .. _class_PhysicsServer2D_constant_PIN_JOINT_MOTOR_TARGET_VELOCITY: .. rst-class:: classref-enumeration-constant :ref:`PinJointParam` **PIN_JOINT_MOTOR_TARGET_VELOCITY** = ``3`` Целевая скорость двигателя. В радианах в секунду. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_PinJointFlag: .. rst-class:: classref-enumeration enum **PinJointFlag**: :ref:`🔗` .. _class_PhysicsServer2D_constant_PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED: .. rst-class:: classref-enumeration-constant :ref:`PinJointFlag` **PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED** = ``0`` Если ``true``, штифт имеет максимальное и минимальное вращение. .. _class_PhysicsServer2D_constant_PIN_JOINT_FLAG_MOTOR_ENABLED: .. rst-class:: classref-enumeration-constant :ref:`PinJointFlag` **PIN_JOINT_FLAG_MOTOR_ENABLED** = ``1`` Если ``true``, двигатель поворачивает штифт. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_DampedSpringParam: .. rst-class:: classref-enumeration enum **DampedSpringParam**: :ref:`🔗` .. _class_PhysicsServer2D_constant_DAMPED_SPRING_REST_LENGTH: .. rst-class:: classref-enumeration-constant :ref:`DampedSpringParam` **DAMPED_SPRING_REST_LENGTH** = ``0`` Устанавливает длину покоя пружинного соединения. Соединение всегда будет пытаться вернуться на эту длину при раздвижении. Значение этого параметра по умолчанию — расстояние между точками крепления соединения. .. _class_PhysicsServer2D_constant_DAMPED_SPRING_STIFFNESS: .. rst-class:: classref-enumeration-constant :ref:`DampedSpringParam` **DAMPED_SPRING_STIFFNESS** = ``1`` Устанавливает жесткость пружинного соединения. Соединение прикладывает силу, равную жесткости, умноженной на расстояние от его длины покоя. Значение этого параметра по умолчанию — ``20.0``. .. _class_PhysicsServer2D_constant_DAMPED_SPRING_DAMPING: .. rst-class:: classref-enumeration-constant :ref:`DampedSpringParam` **DAMPED_SPRING_DAMPING** = ``2`` Устанавливает коэффициент демпфирования пружинного соединения. Значение 0 указывает на недемпфированную пружину, а значение 1 заставляет систему достигать равновесия как можно быстрее (критическое демпфирование). Значение этого параметра по умолчанию — ``1.5``. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_CCDMode: .. rst-class:: classref-enumeration enum **CCDMode**: :ref:`🔗` .. _class_PhysicsServer2D_constant_CCD_MODE_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`CCDMode` **CCD_MODE_DISABLED** = ``0`` Отключает непрерывное обнаружение столкновений. Это самый быстрый способ обнаружения столкновений тел, но он может пропустить небольшие и/или быстро движущиеся объекты. .. _class_PhysicsServer2D_constant_CCD_MODE_CAST_RAY: .. rst-class:: classref-enumeration-constant :ref:`CCDMode` **CCD_MODE_CAST_RAY** = ``1`` Позволяет непрерывно обнаруживать столкновения с помощью raycasting. Это быстрее, чем shapecasting, но менее точно. .. _class_PhysicsServer2D_constant_CCD_MODE_CAST_SHAPE: .. rst-class:: classref-enumeration-constant :ref:`CCDMode` **CCD_MODE_CAST_SHAPE** = ``2`` Позволяет непрерывно обнаруживать столкновения с помощью шейпкастинга. Это самый медленный метод ПЗС, но и самый точный. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_AreaBodyStatus: .. rst-class:: classref-enumeration enum **AreaBodyStatus**: :ref:`🔗` .. _class_PhysicsServer2D_constant_AREA_BODY_ADDED: .. rst-class:: classref-enumeration-constant :ref:`AreaBodyStatus` **AREA_BODY_ADDED** = ``0`` Значение первого параметра и функция обратного вызова области получает, когда объект входит в одну из ее фигур. .. _class_PhysicsServer2D_constant_AREA_BODY_REMOVED: .. rst-class:: classref-enumeration-constant :ref:`AreaBodyStatus` **AREA_BODY_REMOVED** = ``1`` Значение первого параметра и функция обратного вызова области получает, когда объект выходит из одной из своих фигур. .. rst-class:: classref-item-separator ---- .. _enum_PhysicsServer2D_ProcessInfo: .. rst-class:: classref-enumeration enum **ProcessInfo**: :ref:`🔗` .. _class_PhysicsServer2D_constant_INFO_ACTIVE_OBJECTS: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_ACTIVE_OBJECTS** = ``0`` Константа для получения количества объектов, которые не спят. .. _class_PhysicsServer2D_constant_INFO_COLLISION_PAIRS: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_COLLISION_PAIRS** = ``1`` Константа для получения количества возможных столкновений. .. _class_PhysicsServer2D_constant_INFO_ISLAND_COUNT: .. rst-class:: classref-enumeration-constant :ref:`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`, shape\: :ref:`RID`, transform\: :ref:`Transform2D` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool` = false\ ) :ref:`🔗` Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами ``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`, id\: :ref:`int`\ ) :ref:`🔗` Прикрепляет ``ObjectID`` холста к области. Используйте :ref:`Object.get_instance_id()`, чтобы получить ``ObjectID`` для :ref:`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`, id\: :ref:`int`\ ) :ref:`🔗` Прикрепляет ``ObjectID`` :ref:`Object` к области. Используйте :ref:`Object.get_instance_id()`, чтобы получить ``ObjectID`` для :ref:`CollisionObject2D`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_clear_shapes: .. rst-class:: classref-method |void| **area_clear_shapes**\ (\ area\: :ref:`RID`\ ) :ref:`🔗` Удаляет все фигуры из области. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_create: .. rst-class:: classref-method :ref:`RID` **area_create**\ (\ ) :ref:`🔗` Создает объект 2D-области на физическом сервере и возвращает :ref:`RID`, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновений и маску, установленные на ``1``, и ``monitorable``, установленные на ``false``. Используйте :ref:`area_add_shape()`, чтобы добавить к нему формы, используйте :ref:`area_set_transform()`, чтобы задать его преобразование, и используйте :ref:`area_set_space()`, чтобы добавить область в пространство. Если вы хотите, чтобы область была обнаруживаемой, используйте :ref:`area_set_monitorable()`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_canvas_instance_id: .. rst-class:: classref-method :ref:`int` **area_get_canvas_instance_id**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает ``ObjectID`` холста, прикрепленного к области. Используйте :ref:`@GlobalScope.instance_from_id()`, чтобы получить :ref:`CanvasLayer` из ненулевого ``ObjectID``. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_collision_layer: .. rst-class:: classref-method :ref:`int` **area_get_collision_layer**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает физический слой или слои, к которым принадлежит область, в виде битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_collision_mask: .. rst-class:: classref-method :ref:`int` **area_get_collision_mask**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает физический слой или слои, с которыми может контактировать область, в виде битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_object_instance_id: .. rst-class:: classref-method :ref:`int` **area_get_object_instance_id**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает ``ObjectID``, прикрепленный к области. Используйте :ref:`@GlobalScope.instance_from_id()`, чтобы извлечь :ref:`Object` из ненулевого ``ObjectID``. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_param: .. rst-class:: classref-method :ref:`Variant` **area_get_param**\ (\ area\: :ref:`RID`, param\: :ref:`AreaParameter`\ ) |const| :ref:`🔗` Возвращает значение заданного параметра площади. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_shape: .. rst-class:: classref-method :ref:`RID` **area_get_shape**\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| :ref:`🔗` Возвращает :ref:`RID` фигуры с указанным индексом в массиве фигур области. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_shape_count: .. rst-class:: classref-method :ref:`int` **area_get_shape_count**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает количество фигур, добавленных в область. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_shape_transform: .. rst-class:: classref-method :ref:`Transform2D` **area_get_shape_transform**\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| :ref:`🔗` Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_space: .. rst-class:: classref-method :ref:`RID` **area_get_space**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает :ref:`RID` пространства, назначенного области. Возвращает пустой :ref:`RID`, если пространство не назначено. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_get_transform: .. rst-class:: classref-method :ref:`Transform2D` **area_get_transform**\ (\ area\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает матрицу преобразования области. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_remove_shape: .. rst-class:: classref-method |void| **area_remove_shape**\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`\ ) :ref:`🔗` Удаляет фигуру с указанным индексом из массива фигур области. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур области, которые имели индексы выше ``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`, callback\: :ref:`Callable`\ ) :ref:`🔗` Устанавливает обратный вызов монитора области. Этот обратный вызов будет вызван, когда любая другая (форма) области входит или выходит из (формы) заданной области, и должен принимать следующие пять параметров: 1. целое число ``status``: либо :ref:`AREA_BODY_ADDED` или :ref:`AREA_BODY_REMOVED` в зависимости от того, вошла или вышла из области форма другой области, 2. :ref:`RID` ``area_rid``: :ref:`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`, layer\: :ref:`int`\ ) :ref:`🔗` Назначает область одному или нескольким физическим слоям с помощью битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_set_collision_mask: .. rst-class:: classref-method |void| **area_set_collision_mask**\ (\ area\: :ref:`RID`, mask\: :ref:`int`\ ) :ref:`🔗` Устанавливает, какие физические слои будет отслеживать область, с помощью битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_set_monitor_callback: .. rst-class:: classref-method |void| **area_set_monitor_callback**\ (\ area\: :ref:`RID`, callback\: :ref:`Callable`\ ) :ref:`🔗` Устанавливает обратный вызов монитора тела области. Этот обратный вызов будет вызван, когда любое другое (форма) тело входит или выходит (форма) из заданной области, и должен принимать следующие пять параметров: 1. целое число ``status``: либо :ref:`AREA_BODY_ADDED` или :ref:`AREA_BODY_REMOVED` в зависимости от того, вошла или вышла из области другая форма тела, 2. :ref:`RID` ``body_rid``: :ref:`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`, monitorable\: :ref:`bool`\ ) :ref:`🔗` Устанавливает, является ли область контролируемой или нет. Если ``monitorable`` имеет значение ``true``, обратный вызов мониторинга области других областей будет вызван, когда эта область входит в них или выходит из них. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_set_param: .. rst-class:: classref-method |void| **area_set_param**\ (\ area\: :ref:`RID`, param\: :ref:`AreaParameter`, value\: :ref:`Variant`\ ) :ref:`🔗` Устанавливает значение заданного параметра области. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_set_shape: .. rst-class:: classref-method |void| **area_set_shape**\ (\ area\: :ref:`RID`, shape_idx\: :ref:`int`, shape\: :ref:`RID`\ ) :ref:`🔗` Заменяет форму области по указанному индексу на другую форму, не влияя на свойства ``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`, shape_idx\: :ref:`int`, disabled\: :ref:`bool`\ ) :ref:`🔗` Устанавливает отключенное свойство формы области с заданным индексом. Если ``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`, shape_idx\: :ref:`int`, transform\: :ref:`Transform2D`\ ) :ref:`🔗` Задает матрицу локального преобразования формы области с заданным индексом. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_area_set_space: .. rst-class:: classref-method |void| **area_set_space**\ (\ area\: :ref:`RID`, space\: :ref:`RID`\ ) :ref:`🔗` Добавляет область к указанному пространству после удаления области из ранее назначенного пространства (если таковое имеется). \ **Примечание:** Чтобы удалить область из пространства без немедленного добавления ее обратно в другое место, используйте ``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`, transform\: :ref:`Transform2D`\ ) :ref:`🔗` Задает матрицу преобразования области. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_add_collision_exception: .. rst-class:: classref-method |void| **body_add_collision_exception**\ (\ body\: :ref:`RID`, excepted_body\: :ref:`RID`\ ) :ref:`🔗` Добавляет ``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`, force\: :ref:`Vector2`\ ) :ref:`🔗` Добавляет постоянную направленную силу к телу. Сила не влияет на вращение. Сила остается приложенной с течением времени, пока не будет очищена с помощью ``PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0))``. Это эквивалентно использованию :ref:`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`, force\: :ref:`Vector2`, position\: :ref:`Vector2` = Vector2(0, 0)\ ) :ref:`🔗` Добавляет постоянную позиционную силу к телу. Сила может влиять на вращение, если ``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`, torque\: :ref:`float`\ ) :ref:`🔗` Добавляет постоянную вращательную силу к телу. Сила не влияет на положение. Сила остается приложенной с течением времени, пока не будет очищена с помощью ``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`, shape\: :ref:`RID`, transform\: :ref:`Transform2D` = Transform2D(1, 0, 0, 1, 0, 0), disabled\: :ref:`bool` = false\ ) :ref:`🔗` Добавляет фигуру к области с заданным локальным преобразованием. Фигура (вместе со своими свойствами ``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`, force\: :ref:`Vector2`\ ) :ref:`🔗` Применяет направленную силу к телу в центре масс тела. Сила не влияет на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики. Это эквивалентно использованию :ref:`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`, impulse\: :ref:`Vector2`\ ) :ref:`🔗` Применяет направленный импульс к телу в центре масс тела. Импульс не влияет на вращение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force"). Это эквивалентно использованию :ref:`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`, force\: :ref:`Vector2`, position\: :ref:`Vector2` = Vector2(0, 0)\ ) :ref:`🔗` Применяет позиционированную силу к телу. Сила может влиять на вращение, если ``position`` отличается от центра масс тела. Сила зависит от времени и должна применяться при каждом обновлении физики. \ ``position`` — это смещение от начала координат тела в глобальных координатах. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_apply_impulse: .. rst-class:: classref-method |void| **body_apply_impulse**\ (\ body\: :ref:`RID`, impulse\: :ref:`Vector2`, position\: :ref:`Vector2` = Vector2(0, 0)\ ) :ref:`🔗` Применяет позиционированный импульс к телу. Импульс может влиять на вращение, если ``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`, torque\: :ref:`float`\ ) :ref:`🔗` Применяет вращательную силу к телу. Сила не влияет на положение. Сила зависит от времени и должна применяться при каждом обновлении физики. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_apply_torque_impulse: .. rst-class:: classref-method |void| **body_apply_torque_impulse**\ (\ body\: :ref:`RID`, impulse\: :ref:`float`\ ) :ref:`🔗` Применяет вращательный импульс к телу. Импульс не влияет на положение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_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`, id\: :ref:`int`\ ) :ref:`🔗` Прикрепляет ``ObjectID`` холста к телу. Используйте :ref:`Object.get_instance_id()`, чтобы получить ``ObjectID`` :ref:`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`, id\: :ref:`int`\ ) :ref:`🔗` Прикрепляет ``ObjectID``, из :ref:`Object`, к телу. Используйте :ref:`Object.get_instance_id()`, чтобы получить ``ObjectID`` :ref:`CollisionObject2D`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_clear_shapes: .. rst-class:: classref-method |void| **body_clear_shapes**\ (\ body\: :ref:`RID`\ ) :ref:`🔗` Удаляет все фигуры из тела. Это не удаляет сами фигуры, поэтому их можно продолжать использовать в другом месте или добавлять обратно позже. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_create: .. rst-class:: classref-method :ref:`RID` **body_create**\ (\ ) :ref:`🔗` Создает объект 2D-тела на физическом сервере и возвращает :ref:`RID`, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновения и маску, установленные на ``1``, и режим тела, установленный на :ref:`BODY_MODE_RIGID`. Используйте :ref:`body_add_shape()`, чтобы добавить к нему формы, используйте :ref:`body_set_state()`, чтобы задать его преобразование, и используйте :ref:`body_set_space()`, чтобы добавить тело в пространство. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_canvas_instance_id: .. rst-class:: classref-method :ref:`int` **body_get_canvas_instance_id**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает ``ObjectID`` холста, прикрепленного к телу. Используйте :ref:`@GlobalScope.instance_from_id()`, чтобы получить :ref:`CanvasLayer` из ненулевого ``ObjectID``. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_collision_layer: .. rst-class:: classref-method :ref:`int` **body_get_collision_layer**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает физический слой или слои, к которым принадлежит тело, в виде битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_collision_mask: .. rst-class:: classref-method :ref:`int` **body_get_collision_mask**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает физический слой или слои, с которыми может сталкиваться тело, в виде битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_collision_priority: .. rst-class:: classref-method :ref:`float` **body_get_collision_priority**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает приоритет столкновения тела. Используется в фазе депенетирования :ref:`body_test_motion()`. Чем выше приоритет, тем ниже будет проникновение в тело. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_constant_force: .. rst-class:: classref-method :ref:`Vector2` **body_get_constant_force**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики. См. :ref:`body_add_constant_force()` и :ref:`body_add_constant_central_force()`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_constant_torque: .. rst-class:: classref-method :ref:`float` **body_get_constant_torque**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики. См. :ref:`body_add_constant_torque()`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_continuous_collision_detection_mode: .. rst-class:: classref-method :ref:`CCDMode` **body_get_continuous_collision_detection_mode**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает режим непрерывного обнаружения столкновений тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_direct_state: .. rst-class:: classref-method :ref:`PhysicsDirectBodyState2D` **body_get_direct_state**\ (\ body\: :ref:`RID`\ ) :ref:`🔗` Возвращает :ref:`PhysicsDirectBodyState2D` тела. Возвращает ``null``, если тело уничтожено или не назначено пространству. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_max_contacts_reported: .. rst-class:: classref-method :ref:`int` **body_get_max_contacts_reported**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает максимальное количество контактов, о которых может сообщить тело. См. :ref:`body_set_max_contacts_reported()`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_mode: .. rst-class:: classref-method :ref:`BodyMode` **body_get_mode**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает режим тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_object_instance_id: .. rst-class:: classref-method :ref:`int` **body_get_object_instance_id**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает ``ObjectID``, прикрепленный к телу. Используйте :ref:`@GlobalScope.instance_from_id()`, чтобы извлечь :ref:`Object` из ненулевого ``ObjectID``. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_param: .. rst-class:: classref-method :ref:`Variant` **body_get_param**\ (\ body\: :ref:`RID`, param\: :ref:`BodyParameter`\ ) |const| :ref:`🔗` Возвращает значение указанного параметра тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_shape: .. rst-class:: classref-method :ref:`RID` **body_get_shape**\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| :ref:`🔗` Возвращает :ref:`RID` фигуры с указанным индексом в массиве фигур тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_shape_count: .. rst-class:: classref-method :ref:`int` **body_get_shape_count**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает количество фигур, добавленных к телу. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_shape_transform: .. rst-class:: classref-method :ref:`Transform2D` **body_get_shape_transform**\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`\ ) |const| :ref:`🔗` Возвращает матрицу локального преобразования фигуры с заданным индексом в массиве фигур области. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_space: .. rst-class:: classref-method :ref:`RID` **body_get_space**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает :ref:`RID` пространства, назначенного телу. Возвращает пустой :ref:`RID`, если пространство не назначено. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_get_state: .. rst-class:: classref-method :ref:`Variant` **body_get_state**\ (\ body\: :ref:`RID`, state\: :ref:`BodyState`\ ) |const| :ref:`🔗` Возвращает значение заданного состояния тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_is_omitting_force_integration: .. rst-class:: classref-method :ref:`bool` **body_is_omitting_force_integration**\ (\ body\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает ``true``, если тело пропускает стандартную интеграцию силы. См. :ref:`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`, excepted_body\: :ref:`RID`\ ) :ref:`🔗` Удаляет ``exceptioned_body`` из списка исключений столкновений тела, так что столкновения с ним больше не игнорируются. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_remove_shape: .. rst-class:: classref-method |void| **body_remove_shape**\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`\ ) :ref:`🔗` Удаляет фигуру с указанным индексом из массива фигур тела. Сама фигура не удаляется, поэтому ее можно использовать в другом месте или добавить обратно позже. В результате этой операции у фигур тела, которые имели индексы выше ``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`\ ) :ref:`🔗` Восстанавливает инерцию и центр масс тела по умолчанию на основе его форм. Это отменяет любые пользовательские значения, ранее заданные с помощью :ref:`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`, axis_velocity\: :ref:`Vector2`\ ) :ref:`🔗` Изменяет линейную скорость тела таким образом, что ее проекция на ось ``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`, layer\: :ref:`int`\ ) :ref:`🔗` Устанавливает физический слой или слои, к которым принадлежит тело, с помощью битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_set_collision_mask: .. rst-class:: classref-method |void| **body_set_collision_mask**\ (\ body\: :ref:`RID`, mask\: :ref:`int`\ ) :ref:`🔗` Устанавливает физический слой или слои, с которыми может сталкиваться тело, с помощью битовой маски. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_set_collision_priority: .. rst-class:: classref-method |void| **body_set_collision_priority**\ (\ body\: :ref:`RID`, priority\: :ref:`float`\ ) :ref:`🔗` Устанавливает приоритет столкновения тела. Используется в фазе депенетирования :ref:`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`, force\: :ref:`Vector2`\ ) :ref:`🔗` Устанавливает общую постоянную позиционную силу тела, применяемую во время каждого обновления физики. См. :ref:`body_add_constant_force()` и :ref:`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`, torque\: :ref:`float`\ ) :ref:`🔗` Устанавливает общую постоянную вращательную силу тела, применяемую во время каждого обновления физики. См. :ref:`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`, mode\: :ref:`CCDMode`\ ) :ref:`🔗` Устанавливает режим непрерывного обнаружения столкновений. Непрерывное обнаружение столкновений пытается предсказать, где движущееся тело столкнется между обновлениями физики, вместо того, чтобы перемещать его и корректировать его движение в случае столкновения. .. 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`, callable\: :ref:`Callable`, userdata\: :ref:`Variant` = null\ ) :ref:`🔗` Устанавливает функцию обратного вызова интегрирования силы тела на ``callable``. Используйте пустой :ref:`Callable` (``Callable()``), чтобы очистить пользовательский обратный вызов. Функция ``callable`` будет вызываться каждый физический тик перед стандартным интегрированием силы (см. :ref:`body_set_omit_force_integration()`). Ее можно использовать, например, для обновления линейной и угловой скорости тела на основе контакта с другими телами. Если ``userdata`` не является ``null``, функция ``callable`` должна принимать следующие два параметра: 1. ``state``: :ref:`PhysicsDirectBodyState2D`, используемый для получения и изменения состояния тела, 2. ``userdata``: :ref:`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`, amount\: :ref:`int`\ ) :ref:`🔗` Устанавливает максимальное количество контактов, о которых может сообщить тело. Если ``amount`` больше нуля, то тело будет отслеживать не более этого количества контактов с другими телами. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_set_mode: .. rst-class:: classref-method |void| **body_set_mode**\ (\ body\: :ref:`RID`, mode\: :ref:`BodyMode`\ ) :ref:`🔗` Устанавливает режим тела. .. 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`, enable\: :ref:`bool`\ ) :ref:`🔗` Устанавливает, будет ли тело пропускать стандартную интеграцию силы. Если ``enable`` равно ``true``, тело не будет автоматически использовать приложенные силы, крутящие моменты и демпфирование для обновления линейной и угловой скорости тела. В этом случае :ref:`body_set_force_integration_callback()` можно использовать для ручного обновления линейной и угловой скорости. Этот метод вызывается, когда задано свойство :ref:`RigidBody2D.custom_integrator`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_set_param: .. rst-class:: classref-method |void| **body_set_param**\ (\ body\: :ref:`RID`, param\: :ref:`BodyParameter`, value\: :ref:`Variant`\ ) :ref:`🔗` Устанавливает значение указанного параметра тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_set_shape: .. rst-class:: classref-method |void| **body_set_shape**\ (\ body\: :ref:`RID`, shape_idx\: :ref:`int`, shape\: :ref:`RID`\ ) :ref:`🔗` Заменяет форму тела по указанному индексу на другую форму, не влияя на свойства ``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`, shape_idx\: :ref:`int`, enable\: :ref:`bool`, margin\: :ref:`float`\ ) :ref:`🔗` Устанавливает свойства одностороннего столкновения формы тела с заданным индексом. Если ``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`, shape_idx\: :ref:`int`, disabled\: :ref:`bool`\ ) :ref:`🔗` Устанавливает отключенное свойство формы тела с заданным индексом. Если ``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`, shape_idx\: :ref:`int`, transform\: :ref:`Transform2D`\ ) :ref:`🔗` Задает локальную матрицу преобразования формы тела с заданным индексом. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_set_space: .. rst-class:: classref-method |void| **body_set_space**\ (\ body\: :ref:`RID`, space\: :ref:`RID`\ ) :ref:`🔗` Добавляет тело в заданное пространство после удаления тела из ранее назначенного пространства (если оно есть). Если режим тела установлен на :ref:`BODY_MODE_RIGID`, то добавление тела в пространство будет иметь следующие дополнительные эффекты: - Если параметр :ref:`BODY_PARAM_CENTER_OF_MASS` никогда не был задан явно, то значение этого параметра будет пересчитано на основе форм тела. - Если параметр :ref:`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`, state\: :ref:`BodyState`, value\: :ref:`Variant`\ ) :ref:`🔗` Устанавливает значение состояния тела. \ **Примечание:** Изменение состояния не вступает в силу немедленно. Состояние изменится в следующем физическом кадре. .. 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`, callable\: :ref:`Callable`\ ) :ref:`🔗` Устанавливает функцию обратного вызова синхронизации состояния тела на ``callable``. Используйте пустой :ref:`Callable` (``Callable()``), чтобы очистить обратный вызов. Функция ``callable`` будет вызываться каждый физический кадр, предполагая, что тело было активно во время предыдущего физического тика, и может использоваться для получения последнего состояния с физического сервера. Функция ``callable`` должна принимать следующие параметры: 1. ``state``: :ref:`PhysicsDirectBodyState2D`, используемый для получения состояния тела. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_body_test_motion: .. rst-class:: classref-method :ref:`bool` **body_test_motion**\ (\ body\: :ref:`RID`, parameters\: :ref:`PhysicsTestMotionParameters2D`, result\: :ref:`PhysicsTestMotionResult2D` = null\ ) :ref:`🔗` Возвращает ``true``, если столкновение возникнет в результате перемещения тела по вектору движения из заданной точки в пространстве. См. :ref:`PhysicsTestMotionParameters2D` для доступных параметров движения. При желании можно передать объект :ref:`PhysicsTestMotionResult2D`, который будет использоваться для хранения информации о полученном столкновении. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_capsule_shape_create: .. rst-class:: classref-method :ref:`RID` **capsule_shape_create**\ (\ ) :ref:`🔗` Создает форму капсулы 2D на физическом сервере и возвращает :ref:`RID`, который ее идентифицирует. Используйте :ref:`shape_set_data()`, чтобы задать высоту и радиус капсулы. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_circle_shape_create: .. rst-class:: classref-method :ref:`RID` **circle_shape_create**\ (\ ) :ref:`🔗` Создает 2D-круг на физическом сервере и возвращает :ref:`RID`, который его идентифицирует. Используйте :ref:`shape_set_data()`, чтобы задать радиус круга. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_concave_polygon_shape_create: .. rst-class:: classref-method :ref:`RID` **concave_polygon_shape_create**\ (\ ) :ref:`🔗` Создает 2D вогнутую многоугольную форму на физическом сервере и возвращает :ref:`RID`, который ее идентифицирует. Используйте :ref:`shape_set_data()`, чтобы задать сегменты вогнутого многоугольника. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_convex_polygon_shape_create: .. rst-class:: classref-method :ref:`RID` **convex_polygon_shape_create**\ (\ ) :ref:`🔗` Создает 2D выпуклую многоугольную форму на физическом сервере и возвращает :ref:`RID`, который ее идентифицирует. Используйте :ref:`shape_set_data()` для установки точек выпуклого многоугольника. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_damped_spring_joint_get_param: .. rst-class:: classref-method :ref:`float` **damped_spring_joint_get_param**\ (\ joint\: :ref:`RID`, param\: :ref:`DampedSpringParam`\ ) |const| :ref:`🔗` Возвращает значение заданного параметра демпфированного пружинного соединения (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`, param\: :ref:`DampedSpringParam`, value\: :ref:`float`\ ) :ref:`🔗` Устанавливает значение заданного параметра демпфированного пружинного соединения (spring joint). .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_free_rid: .. rst-class:: classref-method |void| **free_rid**\ (\ rid\: :ref:`RID`\ ) :ref:`🔗` Уничтожает любой из объектов, созданных PhysicsServer2D. Если переданный :ref:`RID` не является одним из объектов, которые могут быть созданы PhysicsServer2D, на консоль будет выведена ошибка. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_get_process_info: .. rst-class:: classref-method :ref:`int` **get_process_info**\ (\ process_info\: :ref:`ProcessInfo`\ ) :ref:`🔗` Возвращает значение состояния физического движка, заданное ``process_info``. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_joint_clear: .. rst-class:: classref-method |void| **joint_clear**\ (\ joint\: :ref:`RID`\ ) :ref:`🔗` Уничтожает соединение с указанным :ref:`RID`, создает новое неинициализированное соединение и заставляет :ref:`RID` ссылаться на это новое соединение. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_joint_create: .. rst-class:: classref-method :ref:`RID` **joint_create**\ (\ ) :ref:`🔗` Создает 2D-соединение на физическом сервере и возвращает :ref:`RID`, который его идентифицирует. Чтобы задать тип соединения, используйте :ref:`joint_make_damped_spring()`, :ref:`joint_make_groove()` или :ref:`joint_make_pin()`. Используйте :ref:`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`, disable\: :ref:`bool`\ ) :ref:`🔗` Устанавливает, будут ли тела, прикрепленные к :ref:`Joint2D`, сталкиваться друг с другом. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_joint_get_param: .. rst-class:: classref-method :ref:`float` **joint_get_param**\ (\ joint\: :ref:`RID`, param\: :ref:`JointParam`\ ) |const| :ref:`🔗` Возвращает значение указанного параметра соединения. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_joint_get_type: .. rst-class:: classref-method :ref:`JointType` **joint_get_type**\ (\ joint\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает тип соединения. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_joint_is_disabled_collisions_between_bodies: .. rst-class:: classref-method :ref:`bool` **joint_is_disabled_collisions_between_bodies**\ (\ joint\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает, будут ли тела, прикрепленные к :ref:`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`, anchor_a\: :ref:`Vector2`, anchor_b\: :ref:`Vector2`, body_a\: :ref:`RID`, body_b\: :ref:`RID` = RID()\ ) :ref:`🔗` Делает сочленение демпфированным пружинным сочленением, прикрепленным в точке ``anchor_a`` (заданной в глобальных координатах) на теле ``body_a`` и в точке ``anchor_b`` (заданной в глобальных координатах) на теле ``body_b``. Чтобы задать параметры, специфичные для демпфированной пружины, см. :ref:`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`, groove1_a\: :ref:`Vector2`, groove2_a\: :ref:`Vector2`, anchor_b\: :ref:`Vector2`, body_a\: :ref:`RID` = RID(), body_b\: :ref:`RID` = RID()\ ) :ref:`🔗` Делает соединение пазовым. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_joint_make_pin: .. rst-class:: classref-method |void| **joint_make_pin**\ (\ joint\: :ref:`RID`, anchor\: :ref:`Vector2`, body_a\: :ref:`RID`, body_b\: :ref:`RID` = RID()\ ) :ref:`🔗` Делает сочленение штифтовым. Если ``body_b`` — пустой :ref:`RID`, то ``body_a`` прикрепляется к точке ``anchor`` (заданной в глобальных координатах); в противном случае ``body_a`` прикрепляется к ``body_b`` в точке ``anchor`` (заданной в глобальных координатах). Чтобы задать параметры, специфичные для штифтового сочленения, см. :ref:`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`, param\: :ref:`JointParam`, value\: :ref:`float`\ ) :ref:`🔗` Устанавливает значение указанного параметра соединения. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_pin_joint_get_flag: .. rst-class:: classref-method :ref:`bool` **pin_joint_get_flag**\ (\ joint\: :ref:`RID`, flag\: :ref:`PinJointFlag`\ ) |const| :ref:`🔗` Получает флаг штифтового соединения (pin joint). .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_pin_joint_get_param: .. rst-class:: classref-method :ref:`float` **pin_joint_get_param**\ (\ joint\: :ref:`RID`, param\: :ref:`PinJointParam`\ ) |const| :ref:`🔗` Возвращает значение параметра штифтового соединения (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`, flag\: :ref:`PinJointFlag`, enabled\: :ref:`bool`\ ) :ref:`🔗` Устанавливает флаг штифтового соединения (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`, param\: :ref:`PinJointParam`, value\: :ref:`float`\ ) :ref:`🔗` Устанавливает параметр штифтового соединения. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_rectangle_shape_create: .. rst-class:: classref-method :ref:`RID` **rectangle_shape_create**\ (\ ) :ref:`🔗` Создает 2D-прямоугольную форму на физическом сервере и возвращает :ref:`RID`, который ее идентифицирует. Используйте :ref:`shape_set_data()`, чтобы задать половинные размеры прямоугольника. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_segment_shape_create: .. rst-class:: classref-method :ref:`RID` **segment_shape_create**\ (\ ) :ref:`🔗` Создает форму 2D-сегмента на физическом сервере и возвращает :ref:`RID`, который его идентифицирует. Используйте :ref:`shape_set_data()`, чтобы задать начальную и конечную точки сегмента. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_separation_ray_shape_create: .. rst-class:: classref-method :ref:`RID` **separation_ray_shape_create**\ (\ ) :ref:`🔗` Создает форму луча разделения 2D на физическом сервере и возвращает :ref:`RID`, который ее идентифицирует. Используйте :ref:`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`\ ) :ref:`🔗` Активирует или деактивирует сервер 2D-физики. Если ``active`` равен ``false``, то сервер физики не будет ничего делать на своем шаге физики. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_shape_get_data: .. rst-class:: classref-method :ref:`Variant` **shape_get_data**\ (\ shape\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает данные формы, которые определяют конфигурацию формы, например, полупространства прямоугольника или сегменты вогнутой формы. См. :ref:`shape_set_data()` для точного формата этих данных в каждом случае. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_shape_get_type: .. rst-class:: classref-method :ref:`ShapeType` **shape_get_type**\ (\ shape\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает тип фигуры. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_shape_set_data: .. rst-class:: classref-method |void| **shape_set_data**\ (\ shape\: :ref:`RID`, data\: :ref:`Variant`\ ) :ref:`🔗` Устанавливает данные формы, которые определяют конфигурацию формы. ``data``, которые необходимо передать, зависят от типа формы (см. :ref:`shape_get_type()`): - :ref:`SHAPE_WORLD_BOUNDARY`: массив длины два, содержащий направление :ref:`Vector2` ``normal`` и расстояние :ref:`float` ``d``, - :ref:`SHAPE_SEPARATION_RAY`: словарь, содержащий ключ ``length`` со значением :ref:`float` и ключ ``slide_on_slope`` со значением :ref:`bool`, - :ref:`SHAPE_SEGMENT`: :ref:`Rect2` ``rect``, содержащий первую точку сегмента в ``rect.position`` и вторую точку сегмента в ``rect.size``, - :ref:`SHAPE_CIRCLE`: :ref:`float` ``radius``, - :ref:`SHAPE_RECTANGLE`: :ref:`Vector2` ``half_extents``, - :ref:`SHAPE_CAPSULE`: массив длиной два (или :ref:`Vector2`), содержащий :ref:`float` ``height (высоту)`` и :ref:`float` ``radius (радиус)``, - :ref:`SHAPE_CONVEX_POLYGON`: либо :ref:`PackedVector2Array` точек, определяющих выпуклый многоугольник в порядке против часовой стрелки (внешняя нормаль по часовой стрелке каждого сегмента, образованного последовательными точками, вычисляется внутренне), либо :ref:`PackedFloat32Array` длины, кратной четырем, так что каждый кортеж из 4 :ref:`float` содержит координаты точки, за которыми следуют координаты вектора внешней нормали по часовой стрелке к сегменту между текущей точкой и следующей точкой, - :ref:`SHAPE_CONCAVE_POLYGON`: :ref:`PackedVector2Array` длины, делящейся на два (каждая пара точек образует один сегмент). \ **Предупреждение:** В случае :ref:`SHAPE_CONVEX_POLYGON` этот метод не проверяет, действительно ли предоставленные точки образуют выпуклый многоугольник (в отличие от свойства :ref:`CollisionPolygon2D.polygon`). .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_space_create: .. rst-class:: classref-method :ref:`RID` **space_create**\ (\ ) :ref:`🔗` Создает 2D-пространство на физическом сервере и возвращает :ref:`RID`, который его идентифицирует. Пространство содержит тела и области и управляет пошаговым выполнением физической симуляции объектов в нем. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_space_get_direct_state: .. rst-class:: classref-method :ref:`PhysicsDirectSpaceState2D` **space_get_direct_state**\ (\ space\: :ref:`RID`\ ) :ref:`🔗` Возвращает состояние пространства, :ref:`PhysicsDirectSpaceState2D`. Этот объект может использоваться для запросов на столкновение/пересечение. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_space_get_param: .. rst-class:: classref-method :ref:`float` **space_get_param**\ (\ space\: :ref:`RID`, param\: :ref:`SpaceParameter`\ ) |const| :ref:`🔗` Возвращает значение указанного параметра пространства. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_space_is_active: .. rst-class:: classref-method :ref:`bool` **space_is_active**\ (\ space\: :ref:`RID`\ ) |const| :ref:`🔗` Возвращает ``true``, если пространство активно. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_space_set_active: .. rst-class:: classref-method |void| **space_set_active**\ (\ space\: :ref:`RID`, active\: :ref:`bool`\ ) :ref:`🔗` Активирует или деактивирует пространство. Если ``active`` равен ``false``, то физический сервер не будет ничего делать с этим пространством на своем физическом шаге. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_space_set_param: .. rst-class:: classref-method |void| **space_set_param**\ (\ space\: :ref:`RID`, param\: :ref:`SpaceParameter`, value\: :ref:`float`\ ) :ref:`🔗` Устанавливает значение указанного параметра пространства. .. rst-class:: classref-item-separator ---- .. _class_PhysicsServer2D_method_world_boundary_shape_create: .. rst-class:: classref-method :ref:`RID` **world_boundary_shape_create**\ (\ ) :ref:`🔗` Создает форму границы 2D-мира на физическом сервере и возвращает :ref:`RID`, который ее идентифицирует. Используйте :ref:`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 (Нет возвращаемого значения.)`