PhysicsServer2D

Успадковує: Object

Успадковано від: PhysicsServer2DExtension

Інтерфейс сервера для низького рівня 2D фізичного доступу.

Опис

PhysicsServer2D — це сервер, який відповідає за всю 2D фізику. Він може безпосередньо створювати та керувати всіма фізичними об’єктами:

  • Простір — це самодостатній світ для симуляції фізики. Він містить тіла, області та суглоби. Його стан можна запитувати для отримання інформації про зіткнення та перехрестя, а також можна змінити кілька параметрів моделювання.

  • Фігура — це геометрична фігура, наприклад коло, прямокутник, капсула або багатокутник. Його можна використовувати для виявлення зіткнень, додавши його до тіла/області, можливо, з додатковим перетворенням відносно походження тіла/області. До тіл/областей можна додати кілька (трансформованих) форм, а одну форму можна додавати до тіл/областей кілька разів за допомогою різних локальних трансформацій.

  • Тіло — це фізичний об'єкт, який може перебувати в статичному, кінематичному або твердому режимі. Його стан (наприклад, положення та швидкість) можна запитувати та оновлювати. Зворотний виклик інтеграції сили можна встановити для налаштування фізики тіла.

  • Область — це область у просторі, яка може бути використана для виявлення тіл і областей, які входять і виходять з неї. Можна налаштувати зворотний виклик моніторингу тіла, щоб повідомляти про вхід/вихід з форм тіла, і аналогічно можна встановити зворотний виклик моніторингу області. Силу тяжіння та демпфування можна перекрити в межах області, встановивши параметри області.

  • З’єднання — це зв’язок між двома тілами або одним тілом відносно точки. Можна регулювати такі параметри, як зміщення з’єднання та довжина спокою пружинного з’єднання.

Фізичні об’єкти в PhysicsServer2D можна створювати та маніпулювати ними незалежно; вони не повинні бути прив'язані до вузлів у дереві сцени.

Примітка: усі вузли 2D фізики використовують внутрішній сервер фізики. Додавання вузла фізики до дерева сцени призведе до створення відповідного об’єкта фізики на сервері фізики. Вузол твердого тіла реєструє зворотний виклик, який оновлює перетворення вузла за допомогою перетворення відповідного об’єкта тіла на сервері фізики (кожне оновлення фізики). Вузол області реєструє зворотний виклик, щоб повідомити вузол області про перекриття з відповідним об’єктом області на сервері фізики. Вузол raycast запитує прямий стан відповідного простору на сервері фізики.

Методи

void

area_add_shape(area: RID, shape: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), disabled: bool = false)

void

area_attach_canvas_instance_id(area: RID, id: int)

void

area_attach_object_instance_id(area: RID, id: int)

void

area_clear_shapes(area: RID)

RID

area_create()

int

area_get_canvas_instance_id(area: RID) const

int

area_get_collision_layer(area: RID) const

int

area_get_collision_mask(area: RID) const

int

area_get_object_instance_id(area: RID) const

Variant

area_get_param(area: RID, param: AreaParameter) const

RID

area_get_shape(area: RID, shape_idx: int) const

int

area_get_shape_count(area: RID) const

Transform2D

area_get_shape_transform(area: RID, shape_idx: int) const

RID

area_get_space(area: RID) const

Transform2D

area_get_transform(area: RID) const

void

area_remove_shape(area: RID, shape_idx: int)

void

area_set_area_monitor_callback(area: RID, callback: Callable)

void

area_set_collision_layer(area: RID, layer: int)

void

area_set_collision_mask(area: RID, mask: int)

void

area_set_monitor_callback(area: RID, callback: Callable)

void

area_set_monitorable(area: RID, monitorable: bool)

void

area_set_param(area: RID, param: AreaParameter, value: Variant)

void

area_set_shape(area: RID, shape_idx: int, shape: RID)

void

area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool)

void

area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D)

void

area_set_space(area: RID, space: RID)

void

area_set_transform(area: RID, transform: Transform2D)

void

body_add_collision_exception(body: RID, excepted_body: RID)

void

body_add_constant_central_force(body: RID, force: Vector2)

void

body_add_constant_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0))

void

body_add_constant_torque(body: RID, torque: float)

void

body_add_shape(body: RID, shape: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), disabled: bool = false)

void

body_apply_central_force(body: RID, force: Vector2)

void

body_apply_central_impulse(body: RID, impulse: Vector2)

void

body_apply_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0))

void

body_apply_impulse(body: RID, impulse: Vector2, position: Vector2 = Vector2(0, 0))

void

body_apply_torque(body: RID, torque: float)

void

body_apply_torque_impulse(body: RID, impulse: float)

void

body_attach_canvas_instance_id(body: RID, id: int)

void

body_attach_object_instance_id(body: RID, id: int)

void

body_clear_shapes(body: RID)

RID

body_create()

int

body_get_canvas_instance_id(body: RID) const

int

body_get_collision_layer(body: RID) const

int

body_get_collision_mask(body: RID) const

float

body_get_collision_priority(body: RID) const

Vector2

body_get_constant_force(body: RID) const

float

body_get_constant_torque(body: RID) const

CCDMode

body_get_continuous_collision_detection_mode(body: RID) const

PhysicsDirectBodyState2D

body_get_direct_state(body: RID)

int

body_get_max_contacts_reported(body: RID) const

BodyMode

body_get_mode(body: RID) const

int

body_get_object_instance_id(body: RID) const

Variant

body_get_param(body: RID, param: BodyParameter) const

RID

body_get_shape(body: RID, shape_idx: int) const

int

body_get_shape_count(body: RID) const

Transform2D

body_get_shape_transform(body: RID, shape_idx: int) const

RID

body_get_space(body: RID) const

Variant

body_get_state(body: RID, state: BodyState) const

bool

body_is_omitting_force_integration(body: RID) const

void

body_remove_collision_exception(body: RID, excepted_body: RID)

void

body_remove_shape(body: RID, shape_idx: int)

void

body_reset_mass_properties(body: RID)

void

body_set_axis_velocity(body: RID, axis_velocity: Vector2)

void

body_set_collision_layer(body: RID, layer: int)

void

body_set_collision_mask(body: RID, mask: int)

void

body_set_collision_priority(body: RID, priority: float)

void

body_set_constant_force(body: RID, force: Vector2)

void

body_set_constant_torque(body: RID, torque: float)

void

body_set_continuous_collision_detection_mode(body: RID, mode: CCDMode)

void

body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null)

void

body_set_max_contacts_reported(body: RID, amount: int)

void

body_set_mode(body: RID, mode: BodyMode)

void

body_set_omit_force_integration(body: RID, enable: bool)

void

body_set_param(body: RID, param: BodyParameter, value: Variant)

void

body_set_shape(body: RID, shape_idx: int, shape: RID)

void

body_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float)

void

body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)

void

body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D)

void

body_set_space(body: RID, space: RID)

void

body_set_state(body: RID, state: BodyState, value: Variant)

void

body_set_state_sync_callback(body: RID, callable: Callable)

bool

body_test_motion(body: RID, parameters: PhysicsTestMotionParameters2D, result: PhysicsTestMotionResult2D = null)

RID

capsule_shape_create()

RID

circle_shape_create()

RID

concave_polygon_shape_create()

RID

convex_polygon_shape_create()

float

damped_spring_joint_get_param(joint: RID, param: DampedSpringParam) const

void

damped_spring_joint_set_param(joint: RID, param: DampedSpringParam, value: float)

void

free_rid(rid: RID)

int

get_process_info(process_info: ProcessInfo)

void

joint_clear(joint: RID)

RID

joint_create()

void

joint_disable_collisions_between_bodies(joint: RID, disable: bool)

float

joint_get_param(joint: RID, param: JointParam) const

JointType

joint_get_type(joint: RID) const

bool

joint_is_disabled_collisions_between_bodies(joint: RID) const

void

joint_make_damped_spring(joint: RID, anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID = RID())

void

joint_make_groove(joint: RID, groove1_a: Vector2, groove2_a: Vector2, anchor_b: Vector2, body_a: RID = RID(), body_b: RID = RID())

void

joint_make_pin(joint: RID, anchor: Vector2, body_a: RID, body_b: RID = RID())

void

joint_set_param(joint: RID, param: JointParam, value: float)

bool

pin_joint_get_flag(joint: RID, flag: PinJointFlag) const

float

pin_joint_get_param(joint: RID, param: PinJointParam) const

void

pin_joint_set_flag(joint: RID, flag: PinJointFlag, enabled: bool)

void

pin_joint_set_param(joint: RID, param: PinJointParam, value: float)

RID

rectangle_shape_create()

RID

segment_shape_create()

RID

separation_ray_shape_create()

void

set_active(active: bool)

Variant

shape_get_data(shape: RID) const

ShapeType

shape_get_type(shape: RID) const

void

shape_set_data(shape: RID, data: Variant)

RID

space_create()

PhysicsDirectSpaceState2D

space_get_direct_state(space: RID)

float

space_get_param(space: RID, param: SpaceParameter) const

bool

space_is_active(space: RID) const

void

space_set_active(space: RID, active: bool)

void

space_set_param(space: RID, param: SpaceParameter, value: float)

RID

world_boundary_shape_create()


Переліки

enum SpaceParameter: 🔗

SpaceParameter SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0

Постійно встановити / вийняти максимальну відстань пари органів повинні переходити до їх статусу зіткнення. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/solver/contact_recycle_radius.

SpaceParameter SPACE_PARAM_CONTACT_MAX_SEPARATION = 1

Постійно встановіть / оберіть максимальну відстань, форма може бути від іншої до того, як вони вважаються відокремленими, і контакт відкидається. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/solver/contact_max_separation.

SpaceParameter SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2

Постійно встановити / вийняти максимальну відстань, форма може проникнути іншої форми, перш ніж вважається зіткненням. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/solver/contact_max_allowed_penetration.

SpaceParameter SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3

Постійно налаштовувати / вийняти роз'єм за замовчуванням для всіх контактів фізики. Розчинник Bias є фактором, який контролює, як багато двох об'єктів "відновлення", після перекриття, щоб уникнути їх в цьому стані через чисельне імпросіяння. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/solver/default_contact_bias.

SpaceParameter SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4

Постійне встановлення/витратити порогу лінійну швидкість діяльності. Потенціал неактивний, як лінійна, так і кутова швидкість буде нести до сну після дати часу. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/sleep_threshold_linear.

SpaceParameter SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5

Постійно встановити / вийняти порогу кутову швидкість діяльності. Потенціал неактивний, як лінійна, так і кутова швидкість буде нести до сну після дати часу. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/sleep_threshold_angular.

SpaceParameter SPACE_PARAM_BODY_TIME_TO_SLEEP = 6

Постійне встановлення/витратити максимальний час діяльності. Після цього часу, тіло, що позначається як потенційно неактивний як для лінійної, так і кутової швидкості. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/time_before_sleep.

SpaceParameter SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7

Постійно налаштовувати / вийняти диверсифікатор за замовчуванням для всіх обмежень фізики. Розчинник Bias є фактором, який контролює, як багато двох об'єктів "відновлення", після того, як з'єднання обмеження, щоб уникнути їх в цьому стані через чисельне значення. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/solver/default_constraint_bias.

SpaceParameter SPACE_PARAM_SOLVER_ITERATIONS = 8

Постійне встановлення/витратити кількість переселенців для всіх контактів та обмежень. Чим більша кількість ітерацій, тим більш точний зіткнень буде. Однак більша кількість ітерацій вимагає більшої потужності процесора, яка може зменшити продуктивність. Значення за замовчуванням цього параметра ProjectSettings.physics/2d/solver/solver_iterations.


enum ShapeType: 🔗

ShapeType SHAPE_WORLD_BOUNDARY = 0

Це постійне для створення глобальних граничних форм. У світі обмежена форма є infinite лінії з точки зору походження і нормальним. Таким чином, він може використовуватися для передньої перевірки.

ShapeType SHAPE_SEPARATION_RAY = 1

Це постійна для створення сепарації променевих форм. Відокремлення променя визначається довжиною і відокремлює себе від того, що доторкнеться її далекої точки. Корисно для контролерів символів.

ShapeType SHAPE_SEGMENT = 2

Це постійна для створення форм сегмента. Форма сегмента — фініт лінія від точки А до точки B. Для перехрестя можна перевірити.

ShapeType SHAPE_CIRCLE = 3

Це постійна для створення коло форм. Форма кола тільки має радіус. Ви можете використовувати для перехресних і внутрішніх перевірок.

ShapeType SHAPE_RECTANGLE = 4

Це постійна для створення прямокутних форм. Форма прямокутника визначається шириною і висотою. Ви можете використовувати для перехресних і внутрішніх перевірок.

ShapeType SHAPE_CAPSULE = 5

Це постійна для створення капсулних форм. Форма капсули визначається радіусом і довжиною. Ви можете використовувати для перехресних і внутрішніх перевірок.

ShapeType SHAPE_CONVEX_POLYGON = 6

Це постійна для створення конвекційних полігонних форм. Полігон визначається переліком точок. Ви можете використовувати для перехресних і внутрішніх перевірок.

ShapeType SHAPE_CONCAVE_POLYGON = 7

Це постійна для створення конденсованих полігонних форм. Полігон визначається переліком точок. Ви можете використовувати для перехресних перевірок, але не для внутрішніх / вихідних перевірок.

ShapeType SHAPE_CUSTOM = 8

Ця константа використовується внутрішньо двигуном. Будь-яка спроба створити цей вид результатів форми в похибці.


enum AreaParameter: 🔗

AreaParameter AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0

Постійно встановити режим перевитрату ваги в зоні. Див. AreaSpaceOverrideMode для можливих значень. Значення за замовчуванням цього параметра ЄА_SPACE_OVERRIDE_DISABLED.

AreaParameter AREA_PARAM_GRAVITY = 1

Постійно встановити / встати сили тяжіння в зоні. Значення за замовчуванням цього параметра 9.80665.

AreaParameter AREA_PARAM_GRAVITY_VECTOR = 2

Постійний набір / вектор ваги / центр в області. Значення за замовчуванням цього параметра Vector2(0, -1).

AreaParameter AREA_PARAM_GRAVITY_IS_POINT = 3

Постійно встановити/забудити, чи є вектор сили тяжіння області, або центральна точка. Значення за замовчуванням цього параметра false.

AreaParameter AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4

Постійне встановлення/витратити дистанцію, на якій сила тяжіння дорівнює тяжінням, керованій AREA_PARAM_GRAVITY. Наприклад, на планеті 100 пікселів в радіусі з поверхневою вагою 4,0 px/s2, встановлюють тяжіння до 4.0 і відстань агрегату до 100.0. Тяжіння буде відхиляти відповідно до оберненого квадратного закону, тому в прикладі, на 200 пікселів від центру тяжіння буде 1,0 px/s2 (проти дистанції, 1/4 тяжіння), на 50 пікселів це буде 16.0 px/s2 (половина відстані, 4x тяжіння), і так далі.

Визначено лише тоді, коли відстань одиниці є позитивним числом. Коли відстань агрегату встановлена до 0.0, вага буде постійною незалежно від відстані. Значення за замовчуванням цього параметра 0.0.

AreaParameter AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5

Постійно встановити / вийняти лінійний демпферний режим перенади в зоні. Див. AreaSpaceOverrideMode для можливих значень. Значення за замовчуванням цього параметра AREA_SPACE_OVERRIDE_DISABLED.

AreaParameter AREA_PARAM_LINEAR_DAMP = 6

Постійне встановлення/витратити лінійний демпфуючий фактор ділянки. Значення за замовчуванням цього параметра 0.1.

AreaParameter AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7

Постійно встановити / вийняти кутовий демпферний режим перенади в зоні. Див. AreaSpaceOverrideMode для можливих значень. Значення за замовчуванням цього параметра AREA_SPACE_OVERRIDE_DISABLED.

AreaParameter AREA_PARAM_ANGULAR_DAMP = 8

Постійно встановити / вийняти кутовий демпферний фактор ділянки. Значення за замовчуванням цього параметра 1.0.

AreaParameter AREA_PARAM_PRIORITY = 9

Постійне встановлення/витратити пріоритет (замовлення обробки) ділянки. Значення за замовчуванням цього параметра 0.


enum AreaSpaceOverrideMode: 🔗

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_DISABLED = 0

Ця область не впливає на тяжіння / пампу. Ці, як правило, райони, які існують тільки для виявлення зіткнень, а об'єкти, що надходять або випускають їх.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_COMBINE = 1

Ця область додає свої значення для тягової ваги. Таким чином, багато перекриття зон можуть поєднувати їх фізику, щоб зробити цікаві ефекти.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2

Ця область додає свої значення для тягової ваги. Після чого зупиняється з урахуванням інших зон, навіть за замовчуванням.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_REPLACE = 3

Ця область замінює будь-яку тяжіння / пампу, навіть за замовчуванням, і зупиняється з урахуванням інших зон.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4

Ця область замінює будь-яку гравію/знімку, що обчислюється так далеко, але зберігає розрахунок решти областей, вниз до за замовчуванням.


enum BodyMode: 🔗

BodyMode BODY_MODE_STATIC = 0

Постійний для статичних органів. У цьому режимі тіло можна перенести тільки за допомогою коду користувача і не співвідношенні з іншими тілами.

BodyMode BODY_MODE_KINEMATIC = 1

Постійно для кінематичних органів. У цьому режимі тіло можна перенести тільки за допомогою коду користувача і колеги з іншими тілами.

BodyMode BODY_MODE_RIGID = 2

Постійний для жорстких тіл. У цьому режимі тіло можна відштовхувати іншими тілами і наносити сили.

BodyMode BODY_MODE_RIGID_LINEAR = 3

Постійний для лінійних жорстких тіл. У цьому режимі тіло не може обертати, і тільки його лінійна швидкість впливає на зовнішні сили.


enum BodyParameter: 🔗

BodyParameter BODY_PARAM_BOUNCE = 0

Постійно встановити / вийняти фактор відмов тіла. Значення за замовчуванням цього параметра 0.0.

BodyParameter BODY_PARAM_FRICTION = 1

Постійно встановити / приймати тертя тіла. Значення за замовчуванням цього параметра 1.0.

BodyParameter BODY_PARAM_MASS = 2

Постійно встановити / вийняти масу тіла. Значення за замовчуванням цього параметра 1.0. Якщо режим тіла встановлюється до BODY_MODE_RIGID, то налаштування цього параметра буде мати наступні додаткові ефекти:

  • Якщо параметр BODY_PARAM_CENTER_OF_MASS ніколи не був встановлений явно, то значення цього параметра буде перераховано на основі форми тіла.

  • Якщо параметр BODY_PARAM_INERTIA встановлюється на значення <= 0.0, то значення цього параметра буде перераховуватися на основі форм тіла, маси та центру маси.

BodyParameter BODY_PARAM_INERTIA = 3

Постійно встановити / приймати інерцію тіла. Значення за замовчуванням цього параметра 0.0. Якщо інерція тіла встановлена до значення <= 0.0, то інерція буде перераховуватися на основі форм тіла, маси та центру маси.

BodyParameter BODY_PARAM_CENTER_OF_MASS = 4

Константа для встановлення/отримання положення центру мас тіла в локальній системі координат тіла. Значення цього параметра за замовчуванням — Vector2(0, 0). Якщо цей параметр ніколи не встановлюється явно, то він перераховується на основі форми тіла під час встановлення параметра BODY_PARAM_MASS або під час виклику body_set_space().

BodyParameter BODY_PARAM_GRAVITY_SCALE = 5

Постійно встановити / вийняти множника тіла. Значення за замовчуванням цього параметра 1.0.

BodyParameter BODY_PARAM_LINEAR_DAMP_MODE = 6

Постійно встановити / вийняти лінійний режим демппінгу тіла. Див. BodyDampMode для можливих значень. Значення за замовчуванням цього параметра BODY_DAMP_MODE_COMBINE.

BodyParameter BODY_PARAM_ANGULAR_DAMP_MODE = 7

Постійно встановити / вийняти кутовий режим видалення тіла. Див. BodyDampMode для можливих значень. Значення за замовчуванням цього параметра BODY_DAMP_MODE_COMBINE.

BodyParameter BODY_PARAM_LINEAR_DAMP = 8

Постійно встановити / приймати лінійний демпфуючий фактор тіла. Значення за замовчуванням цього параметра 0.0.

BodyParameter BODY_PARAM_ANGULAR_DAMP = 9

Постійно встановити / вийняти фактор пошкодження тіла. Значення за замовчуванням цього параметра 0.0.

BodyParameter BODY_PARAM_MAX = 10

Представляємо розмір BodyParameter enum.


enum BodyDampMode: 🔗

BodyDampMode BODY_DAMP_MODE_COMBINE = 0

Вартість видалення тіла додається до будь-якого значення, встановленого в зонах або значенням за замовчуванням.

BodyDampMode BODY_DAMP_MODE_REPLACE = 1

Значення розміру тіла замінює будь-яке значення, встановлене в зонах або значенням за замовчуванням.


enum BodyState: 🔗

BodyState BODY_STATE_TRANSFORM = 0

Постійно встановити / вийняти поточну трансформовану матрицю тіла.

BodyState BODY_STATE_LINEAR_VELOCITY = 1

Постійно встановити / приймати поточну лінійну швидкість тіла.

BodyState BODY_STATE_ANGULAR_VELOCITY = 2

Постійно встановити / вийняти поточну кутову швидкість тіла.

BodyState BODY_STATE_SLEEPING = 3

Постійно спати / випікати тіло, або отримати, чи є вона спляча.

BodyState BODY_STATE_CAN_SLEEP = 4

Постійно встановити / вийняти, чи може тіло спати.


enum JointType: 🔗

JointType JOINT_TYPE_PIN = 0

Постійно створювати контактні суглоби.

JointType JOINT_TYPE_GROOVE = 1

Постійно створювати канавки швів.

JointType JOINT_TYPE_DAMPED_SPRING = 2

Постійне створення занурених весняних швів.

JointType JOINT_TYPE_MAX = 3

Представляємо розмір об'єкта JointType.


enum JointParam: 🔗

JointParam JOINT_PARAM_BIAS = 0

Постійно налаштовувати / приймати, як швидко стягуються органи назад, щоб задовольнити спільні обмеження. Чим нижче значення, тим більше два тіла можуть натягнути на суглоб. Значення за замовчуванням цього параметра 0.0.

Note: У фізики Godot цей параметр використовується тільки для контактних з'єднань і з'єднань пазів.

JointParam JOINT_PARAM_MAX_BIAS = 1

Постійно встановити / вийняти максимальну швидкість, з якою може застосовуватися корекція. Значення за замовчуванням цього параметра 3.40282e+38.

Note: У фізики Godot цей параметр використовується тільки для з'єднань пазів.

JointParam JOINT_PARAM_MAX_FORCE = 2

Постійно встановити/забудити максимальну силу, що суглоб може використовуватися для дії на двох тілах. Значення за замовчуванням цього параметра 3.40282e+38.

Note: У фізики Godot цей параметр використовується тільки для з'єднань пазів.


enum PinJointParam: 🔗

PinJointParam PIN_JOINT_SOFTNESS = 0

Постійно встановити/забудити скільки зв'язок контактного суглоба може гнучко. Значення за замовчуванням цього параметра 0.0.

PinJointParam PIN_JOINT_LIMIT_UPPER = 1

Максимальне обертання навколо шпильки.

PinJointParam PIN_JOINT_LIMIT_LOWER = 2

Мінімальне обертання навколо шпильки.

PinJointParam PIN_JOINT_MOTOR_TARGET_VELOCITY = 3

Цільова швидкість двигуна. В редьях на секунду.


enum PinJointFlag: 🔗

PinJointFlag PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED = 0

Якщо true, шпилька має максимальне і мінімальне обертання.

PinJointFlag PIN_JOINT_FLAG_MOTOR_ENABLED = 1

Якщо true, мотор обертається шпилькою.


enum DampedSpringParam: 🔗

DampedSpringParam DAMPED_SPRING_REST_LENGTH = 0

Встановлює решту довжини весняного суглоба. З'єднання завжди намагатиметься повернутися до цієї довжини при розтягуванні. Значення за замовчуванням цього параметра є дистанцією між точками зв'язку.

DampedSpringParam DAMPED_SPRING_STIFFNESS = 1

Встановлює жорсткість весняного суглоба. З'єднання діє сила, що дорівнює стиглості, час відступу від її решти довжини. Значення за замовчуванням цього параметра 20.0.

DampedSpringParam DAMPED_SPRING_DAMPING = 2

Встановлює демпферний співвідношення весняного суглоба. Значення 0 вказує на неприпустиму пружину, при цьому 1 викликає систему для досягнення рівноваги максимально швидко (критичне пошкодження). Значення за замовчуванням цього параметра 1.5.


enum CCDMode: 🔗

CCDMode CCD_MODE_DISABLED = 0

Вимкнено безперервне виявлення зіткнення. Це найшвидший спосіб виявлення зіткнень тіла, але він може пропустити дрібні та/або швидко знімальні предмети.

CCDMode CCD_MODE_CAST_RAY = 1

Увімкнено безперервне виявлення зіткнень. Це швидше, ніж формулювання, але менш точний.

CCDMode CCD_MODE_CAST_SHAPE = 2

Увімкнено безперервне виявлення зіткнень за допомогою формулювання. Це повільний метод CCD, і найбільш точний.


enum AreaBodyStatus: 🔗

AreaBodyStatus AREA_BODY_ADDED = 0

Вартість першого параметра і функції виклику області отримує, коли об'єкт входить до однієї з його форм.

AreaBodyStatus AREA_BODY_REMOVED = 1

Вартість першого параметра і функції виклику області отримує, коли об'єкт виходить один з його форм.


enum ProcessInfo: 🔗

ProcessInfo INFO_ACTIVE_OBJECTS = 0

Постійно отримайте кількість об'єктів, які не сплять.

ProcessInfo INFO_COLLISION_PAIRS = 1

Постійно отримати кількість можливих зіткнень.

ProcessInfo INFO_ISLAND_COUNT = 2

Постійно отримати кількість просторих регіонів, де може відбуватися зіткнення.


Описи методів

void area_add_shape(area: RID, shape: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), disabled: bool = false) 🔗

Додає форму в область, з заданою локальною трансформацією. Форма (все з його transform і disabled властивості) додається до масиву форм, а форми місцевості, як правило, посилаються їх індексом в цьому масиві.


void area_attach_canvas_instance_id(area: RID, id: int) 🔗

Прикріплюємо ObjectID полотна до площі. Використовуйте Object.get_instance_id(), щоб отримати ObjectID CanvasLayer.


void area_attach_object_instance_id(area: RID, id: int) 🔗

Прикріплюємо ObjectID Object в область. Використовуйте Object.get_instance_id(), щоб отримати ObjectID CollisionObject2D.


void area_clear_shapes(area: RID) 🔗

Видаліть всі форми з області. Це не видаліть самі форми, тому вони можуть продовжувати використовуватися в іншому місці або додавати назад пізніше.


RID area_create() 🔗

Створює об'єкт площею 2D в фізичному сервері, і повертає RID, який ідентифікує його. Параметри за замовчуванням для створеної площі включають шар зіткнення і набір масок для 1, і моніторинг, встановлений до false.

Використовуйте _add_shape(), щоб додати форми до нього, скористайтеся _set_transform(), щоб встановити його трансформацію, а також використовувати _set_space() для додавання площі до простору. Якщо ви хочете, щоб зона була виявлена _set_monitorable().


int area_get_canvas_instance_id(area: RID) const 🔗

Повернення ObjectID полотна, прикріпленого до площі. Використовуйте @GlobalScope.instance_from_id() для отримання CanvasLayer з nonzero ObjectID.


int area_get_collision_layer(area: RID) const 🔗

Повертає фізичний шар або шари площі належить до, як трохимаска.


int area_get_collision_mask(area: RID) const 🔗

Повертає фізичний шар або шари ділянки можна зв'язатися з, як трохимаска.


int area_get_object_instance_id(area: RID) const 🔗

Повернення ObjectID прикріплюється до площі. Використовуйте @GlobalScope.instance_from_id() для отримання Object з nonzero ObjectID.


Variant area_get_param(area: RID, param: AreaParameter) const 🔗

Повертає значення заданого параметра площі.


RID area_get_shape(area: RID, shape_idx: int) const 🔗

Повертаємо форму з вказаним індексом в масиві форми.


int area_get_shape_count(area: RID) const 🔗

Повертаємо кількість форм, доданих в область.


Transform2D area_get_shape_transform(area: RID, shape_idx: int) const 🔗

Повертає локальну трансформовану матрицю форми з урахуванням індексу в масиві форми.


RID area_get_space(area: RID) const 🔗

Повертаємо місце, призначене для місцевості. Повертає порожній RID, якщо не призначено місця.


Transform2D area_get_transform(area: RID) const 🔗

Повертає трансформаторну матрицю ділянки.


void area_remove_shape(area: RID, shape_idx: int) 🔗

Видаліть форму з заданим індексом з масиву площі форм. Сама форма не видаляється, тому вона може продовжувати використовуватися в іншому місці або додавати назад пізніше. В результаті цієї операції форма області, яка використовується для показників вище, ніж shape_idx, буде індекс знизився на одному.


void area_set_area_monitor_callback(area: RID, callback: Callable) 🔗

Налаштовує зону моніторингу зворотного зв'язку. Цей зворотний зв'язок буде викликаний, коли будь-який інший (форма) область надходить або виходи (форма) даної області, і повинні прийняти наступні п'ять параметрів:

  1. ціле статус: або AREA_BODY_ADDED або AREA_BODY_REMOVED в залежності від того, чи вводилася форма іншої області або виходу на область,

  2. RID area_rid: RID іншої області, яка введена або виходила область,

  3. ціле instance_id: ObjectID прикріплюється до іншої області,

  4. ціле area_shape_idx: індекс форми іншої області, яка вводиться або виходила область,

  5. ціле self_shape_idx: індекс форми місцевості, де вводиться інший район або виходив.

При підрахунку (або зберіганні доріжки) форми, які надходять і виходять, можна визначити, якщо область (з усіма його формами) вступає в перший раз або вихід на останній раз.


void area_set_collision_layer(area: RID, layer: int) 🔗

Призначає площу до одного або багатьох фізичних шарів, через трохимаску.


void area_set_collision_mask(area: RID, mask: int) 🔗

Набори, які фізичні шари області будуть контролювати, через бітмаску.


void area_set_monitor_callback(area: RID, callback: Callable) 🔗

Налаштовує зону моніторингу зворотного зв'язку. Цей зворотний зв'язок буде викликаний, коли будь-який інший (форма) область надходить або виходи (форма) даної області, і повинні прийняти наступні п'ять параметрів:

  1. ціле статус: або AREA_BODY_ADDED або AREA_BODY_REMOVED в залежності від того, чи вводилася форма іншої області або виходу на область,

  2. RID area_rid: RID іншої області, яка введена або виходила область,

  3. ціле instance_id: ObjectID прикріплюється до іншої області,

  4. ціле area_shape_idx: індекс форми іншої області, яка вводиться або виходила область,

  5. ціле self_shape_idx: індекс форми місцевості, де вводиться інший район або виходив.

При підрахунку (або зберіганні доріжки) форми, які надходять і виходять, можна визначити, якщо область (з усіма його формами) вступає в перший раз або вихід на останній раз.


void area_set_monitorable(area: RID, monitorable: bool) 🔗

Налаштовує, чи працює зона. Якщо control є true, моніторинг зони зворотного виклику інших зон буде викликано, коли ця область надходить або виводить їх.


void area_set_param(area: RID, param: AreaParameter, value: Variant) 🔗

Встановлює значення заданого параметра площі.


void area_set_shape(area: RID, shape_idx: int, shape: RID) 🔗

Замінює форму місцевості за вказаним індексом за іншою формою, при цьому не впливає на трансформ і діалізовані властивості в одному індексі.


void area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool) 🔗

Встановлює відключений майно форми ділянки з заданим індексом. Якщо вимкнено true, то форма не виявить ніяких інших форм, що надходять або випускають її.


void area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D) 🔗

Налаштовує локальну трансформовану матрицю форми ділянки з заданим індексом.


void area_set_space(area: RID, space: RID) 🔗

Додає площу до даної площі, після видалення площі від раніше призначеного простору (якщо це).

Примітка: Для видалення площі з простору без негайного додавання його в іншому місці, використання PhysicsServer2D.area_set_space(area, RID().


void area_set_transform(area: RID, transform: Transform2D) 🔗

Встановлює трансформовану матрицю площі.


void body_add_collision_exception(body: RID, excepted_body: RID) 🔗

Додає excepted_body до списку винятків колізій тіла, щоб колізії з ним ігнорувалися.


void body_add_constant_central_force(body: RID, force: Vector2) 🔗

Додає постійну спрямовану силу організму. Потужність не впливає на обертання. На силі наноситься час до очищення `` PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)``.

Це еквівалентно використання _add_constant_force() в центрі маси тіла.


void body_add_constant_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗

Додає постійно діючу силу організму. сила може впливати на обертання, якщо position відрізняється від центру маси тіла. На силі наноситься час до очищення `` PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)``.

position – це зміщення з організму в глобальних координатах.


void body_add_constant_torque(body: RID, torque: float) 🔗

Додавання постійної обертальної сили до тіла. сила не впливає на положення. На силі наноситься час до очищення `` PhysicsServer2D.body_set_constant_torque(body, 0)``.


void body_add_shape(body: RID, shape: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), disabled: bool = false) 🔗

Додає форму в область, з заданою локальною трансформацією. Форма (все з його transform і disabled властивості) додається до масиву форм, а форми тіла зазвичай додаються їх індексом в цьому масиві.


void body_apply_central_force(body: RID, force: Vector2) 🔗

Застосовується спрямована сила організму, в центрі маси тіла. Потужність не впливає на обертання. Знаряддя часу залежна і означають, що кожен фізичний оновлення.

Це еквівалентно використанню body_apply_force() в центрі маси тіла.


void body_apply_central_impulse(body: RID, impulse: Vector2) 🔗

Застосовується спрямований імпульс до тіла, в центрі маси тіла. Імпульс не впливає на обертання.

Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_force" інакше).

Це еквівалентно використанню body_apply_impulse() в центрі маси тіла.


void body_apply_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗

Застосовується сила позиціонування організму. сила може впливати на обертання, якщо position відрізняється від центру маси тіла. Знаряддя часу залежна і означають, що кожен фізичний оновлення.

position – це зміщення з організму в глобальних координатах.


void body_apply_impulse(body: RID, impulse: Vector2, position: Vector2 = Vector2(0, 0)) 🔗

Відповідні імпульси до тіла. Імпульс може впливати на обертання, якщо position відрізняється від центру маси тіла.

Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).

position – це зміщення з організму в глобальних координатах.


void body_apply_torque(body: RID, torque: float) 🔗

Застосовується обертальна сила до тіла. сила не впливає на положення. Знаряддя часу залежна і означена для кожного оновлення фізики.


void body_apply_torque_impulse(body: RID, impulse: float) 🔗

Застосовує обертальний імпульс до тіла. Імпульс не впливає на позицію.

Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).


void body_attach_canvas_instance_id(body: RID, id: int) 🔗

Прикріплюємо ObjectID полотна до тіла. Використовуйте Object.get_instance_id(), щоб отримати ObjectID CanvasLayer.


void body_attach_object_instance_id(body: RID, id: int) 🔗

Прикріплюємо ObjectID Object до тіла. Використовуйте Object.get_instance_id(), щоб отримати ObjectID CollisionObject2D.


void body_clear_shapes(body: RID) 🔗

Видаліть всі форми з тіла. Це не видаліть самі форми, тому вони можуть продовжувати використовуватися в іншому місці або додавати назад пізніше.


RID body_create() 🔗

Створює об'єкт 2D у фізичному сервері, і повертає RID, який ідентифікує його. Параметри за замовчуванням для створеної площі включають шар зіткнення і набір масок для 1, і режим кузова, встановленого до BODY_MODE_RIGID.

Використовуйте body_add_shape(), щоб додати форми до нього, скористайтеся body_set_state(), щоб встановити його трансформацію, і використовувати body_set_space(), щоб додати тіло до простору.


int body_get_canvas_instance_id(body: RID) const 🔗

Повернення ObjectID полотна, прикріпленого до тіла. Використовуйте @GlobalScope.instance_from_id() для отримання CanvasLayer з nonzero ObjectID.


int body_get_collision_layer(body: RID) const 🔗

Повертає фізичний шар або шари тіла належить до, як трохимаска.


int body_get_collision_mask(body: RID) const 🔗

Повертає фізичний шар або шари тіла може з'єднуватися, як трохимаска.


float body_get_collision_priority(body: RID) const 🔗

Повернення пріоритету зіткнення тіла. Це використовується в фазі депенетації _test_motion(). Чим вище пріоритет, тим нижче проникнення в тіло буде.


Vector2 body_get_constant_force(body: RID) const 🔗

Повертає загальний стан тіла, що застосовується під час кожного оновлення фізики.

Див. _add_constant_force() і _add_constant_central_force().


float body_get_constant_torque(body: RID) const 🔗

Під час кожного оновлення фізики повернулися загальні постійні обертальні сили.

Див. add_constant_torque().


CCDMode body_get_continuous_collision_detection_mode(body: RID) const 🔗

Повертає режим безперервного виявлення зіткнень тіла.


PhysicsDirectBodyState2D body_get_direct_state(body: RID) 🔗

Повертає PhysicsDirectBodyState2D тіла. Повертає null, якщо тіло знищено або не призначено пробілу.


int body_get_max_contacts_reported(body: RID) const 🔗

Повернутися до максимальної кількості контактів, які можуть звітувати організм. Див. _set_max_contacts_reported().


BodyMode body_get_mode(body: RID) const 🔗

Повертає режим тіла.


int body_get_object_instance_id(body: RID) const 🔗

Повернення ObjectID прикріплюється до тіла. Використовуйте @GlobalScope.instance_from_id() для отримання Object з nonzero ObjectID.


Variant body_get_param(body: RID, param: BodyParameter) const 🔗

Повертає значення заданого параметра тіла.


RID body_get_shape(body: RID, shape_idx: int) const 🔗

Повертаємо форму з вказаним індексом в масиві фігур.


int body_get_shape_count(body: RID) const 🔗

Повертаємо кількість форм, доданих до тіла.


Transform2D body_get_shape_transform(body: RID, shape_idx: int) const 🔗

Повертає локальну трансформовану матрицю форми з урахуванням індексу в масиві форми.


RID body_get_space(body: RID) const 🔗

Повертаємо місце, призначене для тіла. Повертає порожній RID, якщо не призначено місця.


Variant body_get_state(body: RID, state: BodyState) const 🔗

Повертає значення заданого стану тіла.


bool body_is_omitting_force_integration(body: RID) const 🔗

Повертаємо true, якщо тіло відмовляється від стандартної силової інтеграції. Див. _set_omit_force_integration().


void body_remove_collision_exception(body: RID, excepted_body: RID) 🔗

Видаліть крімed_body з переліку вузлів зіткнення тіла, щоб зіткнення з ним більше не ігнорувалися.


void body_remove_shape(body: RID, shape_idx: int) 🔗

Вилучає форму з заданим індексом з масиву фігур тіла. Сама форма не видаляється, тому вона може продовжувати використовуватися в іншому місці або додавати назад пізніше. В результаті цієї операції форма тіла, яка використовується для індексів вище shape_idx, буде індекс знизився на одному.


void body_reset_mass_properties(body: RID) 🔗

Відновлює інерцію за замовчуванням і центр маси тіла на основі його форм. Цей не дає ніяких користувацьких значень, які раніше встановлюються за допомогою _set_param().


void body_set_axis_velocity(body: RID, axis_velocity: Vector2) 🔗

Змінює лінійну швидкість тіла таким чином, щоб його проекція на вісь axis_velocity.normalized() дорівнювала точно axis_velocity.length(). Це корисно для стрибків.


void body_set_collision_layer(body: RID, layer: int) 🔗

Налаштовує фізичний шар або шари тіла, що належить, через трохимаску.


void body_set_collision_mask(body: RID, mask: int) 🔗

Налаштовує фізичний шар або шари тіла може з'єднуватися, через трохимаску.


void body_set_collision_priority(body: RID, priority: float) 🔗

Налаштування пріоритету зіткнення тіла. Це використовується в фазі депенетації _test_motion(). Чим вище пріоритет, тим нижче проникнення в тіло буде.


void body_set_constant_force(body: RID, force: Vector2) 🔗

Встановлює загальну постійну позиційну силу тіла, що застосовується під час кожного оновлення фізики.

Див. body_add_constant_force() та body_add_constant_central_force().


void body_set_constant_torque(body: RID, torque: float) 🔗

Встановлює загальну постійну обертальну силу тіла, застосовану під час кожного оновлення фізики.

Подивитися _add_constant_torque().


void body_set_continuous_collision_detection_mode(body: RID, mode: CCDMode) 🔗

Встановлює режим безперервного виявлення зіткнень.

Безперервне виявлення зіткнень намагається передбачити, де рухоме тіло зіткнеться між оновленнями фізики, замість того, щоб переміщувати його та коригувати його рух у разі зіткнення.


void body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null) 🔗

Налаштовує функцію зворотного зв’язку з користувацькими зусиллями тіла до callable. Використовуйте порожній Callable (Callable()) для очищення користувацького зворотного виклику.

Функція callable буде називатися кожен фізичний кліщ, перш ніж стандартна інтеграція сили (див. body_set_omit_force_integration()). Для оновлення лінійної та кутової швидкості тіла можна використовувати наприклад, для оновлення лінійної та кутової швидкості на основі контакту з іншими тілами.

Якщо userdata не null, функція callable повинна приймати наступні два параметри:

  1. state: a PhysicsDirectBodyState2D використовується для отримання та модифікації стану тіла,

  2. код пропустити-лінтuserdata``: a [Variant]; його значення буде [param userdata] передано в цей метод.

Якщо [param userdata] is [code]null``, то callable повинен прийняти тільки параметр state.


void body_set_max_contacts_reported(body: RID, amount: int) 🔗

Налаштовує максимальну кількість контактів, які можуть звітувати організм. Якщо amount перевищує нуль, то тіло буде стежити за більшістю цього багато контактів з іншими тілами.


void body_set_mode(body: RID, mode: BodyMode) 🔗

Встановлює режим організму.


void body_set_omit_force_integration(body: RID, enable: bool) 🔗

Налаштовує, чи є тіло, що має стандартну силову інтеграцію. Якщо enable є true, тіло не буде автоматично використовувати застосовані сили, крутки, а також перешкоджати відновленню лінійної та кутової швидкості тіла. У цьому випадку можна використовувати для вручну оновлення лінійної та кутової швидкості.

Цей метод називається при наявності майна RigidBody2D.custom_integrator.


void body_set_param(body: RID, param: BodyParameter, value: Variant) 🔗

Встановлює значення заданого параметра тіла.


void body_set_shape(body: RID, shape_idx: int, shape: RID) 🔗

Замінює форму тіла на заданому індексі іншою формою, при цьому не впливає на transform, розмкнено, і односторонні зіткнені властивості при цьому показника.


void body_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float) 🔗

Налаштовує односторонню зіткненість форми тіла з заданим індексом. Якщо enable є true, напрямок одностороннього зіткнення, надана локальною віссю форми body_get_shape_transform(body, форма_idx).y буде використовуватися для ігнорування зіткнення з формою в протилежному напрямку, і для забезпечення депеляції Кінематичних органів відбувається в цьому напрямку.


void body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool) 🔗

Налаштовує відключений майно форми тіла з заданим індексом. Якщо enable true, то форма буде ігноруватися у всіх виявленнях зіткнення.


void body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D) 🔗

Налаштовує локальну трансформовану матрицю форми тіла з заданим індексом.


void body_set_space(body: RID, space: RID) 🔗

Додає тіло до даної площі, після видалення тіла з раніше призначеного простору (якщо будь-який). Якщо режим тіла встановлюється до BODY_MODE_RIGID, то додавання тіла до простору буде мати наступні додаткові ефекти:

  • Якщо параметр BODY_PARAM_CENTER_OF_MASS ніколи не був встановлений явно, то значення цього параметра буде перераховано на основі форми тіла.

  • Якщо параметр BODY_PARAM_INERTIA встановлюється на значення <= 0.0, то значення цього параметра буде перераховуватися на основі форм тіла, маси та центру маси.

Примітка: Щоб видалити тіло з простору без негайного додавання його в іншому місці, скористайтеся PhysicsServer2D.body_set_space(body, RID()).


void body_set_state(body: RID, state: BodyState, value: Variant) 🔗

Встановлює значення стану тіла.

Примітка: Зміна стану не набуває чинності негайно. Стан зміниться в наступному кадрі фізики.


void body_set_state_sync_callback(body: RID, callable: Callable) 🔗

Налаштовує функцію зворотного виклику стану тіла до enable. Використовуйте порожній Callable (Callable()) для очищення зворотного виклику.

Функція callable буде називатися кожним фізичним кадром, припустимо, що тіло було активний під час попередньої фізики кліщу, і може бути використаний для виїдання останнього стану з фізичного сервера.

Функція callable повинна приймати такі параметри:

  1. state: a ФізикаDirectBodyState2D, використовується для отримання стану тіла.


bool body_test_motion(body: RID, parameters: PhysicsTestMotionParameters2D, result: PhysicsTestMotionResult2D = null) 🔗

Повертаємо true, якщо зіткнення призведе до переміщення тіла вздовж вектора руху з даної точки в космосі. Див. PhysicsTestMotionResult2D для доступних параметрів руху. Додатково може бути переданий об'єкт PhysicsTestMotionResult2D, який буде використовуватися для зберігання інформації про отриманий зіткнення.


RID capsule_shape_create() 🔗

Створює форму 2D капсули в фізичному сервері, і повертає RID, що ідентифікує його. Використовуйте _set_data(), щоб встановити висоту капсули і радіус.


RID circle_shape_create() 🔗

Створює форму круга 2D на сервері фізики та повертає RID, що ідентифікує його. Використовуйте _set_data(), щоб встановити радіус кола.


RID concave_polygon_shape_create() 🔗

Створює форму полігону 2D у фізичному сервері, і повертає RID, що ідентифікує його. Використовуйте _set_data(), щоб встановити відрізки полігонів.


RID convex_polygon_shape_create() 🔗

Створює форму полігону 2D у фізичному сервері та повертає RID, що ідентифікує його. Використовуйте _set_data() для встановлення точок конвекційного полігону.


float damped_spring_joint_get_param(joint: RID, param: DampedSpringParam) const 🔗

Повертає значення заданого параметра пружинного з'єднання з демпфуванням.


void damped_spring_joint_set_param(joint: RID, param: DampedSpringParam, value: float) 🔗

Встановлює значення заданого параметра демпфованого пружинного з'єднання.


void free_rid(rid: RID) 🔗

Дестройс будь-який з об'єктів, створених фізикоюServer2D. Якщо RID пропущено не одне з об'єктів, які можуть бути створені за допомогою PhysServer2D, похибка буде надрукована на консолі.


int get_process_info(process_info: ProcessInfo) 🔗

Повертає значення стану фізичного движка, заданого параметром process_info.


void joint_clear(joint: RID) 🔗

Знижує суглоб з даної RID, створює новий неініціалізований суглоб, і робить RID на це новий суглоб.


RID joint_create() 🔗

Створює 2D-стик на сервері фізики та повертає RID, який його ідентифікує. Щоб встановити тип стику, використовуйте joint_make_damped_spring(), joint_make_groove() до joint_make_pin(). Використовуйте joint_set_param() для встановлення загальних параметрів з'єднання.


void joint_disable_collisions_between_bodies(joint: RID, disable: bool) 🔗

Налаштовує, чи прикріплюються до Joint2D, з’єднаються один з одним.


float joint_get_param(joint: RID, param: JointParam) const 🔗

Повертає значення заданого параметра суглоба.


JointType joint_get_type(joint: RID) const 🔗

Повертає тип суглоба.


bool joint_is_disabled_collisions_between_bodies(joint: RID) const 🔗

Повертаємо вашу увагу на те, що ті органи, прикріплені до Joint2D, зіштовхуються один з одним.


void joint_make_damped_spring(joint: RID, anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID = RID()) 🔗

Зробіть спільний знімний весняний суглоб, прикріплений в пункті Anchor_a (поважає в глобальних координатах) на тілі body_a і в пункті Anchor_b (поважає в глобальних координатах) на тілі body_b. Щоб встановити параметри, які специфічні для занурення пружини, див. damped_spring_joint_set_param().


void joint_make_groove(joint: RID, groove1_a: Vector2, groove2_a: Vector2, anchor_b: Vector2, body_a: RID = RID(), body_b: RID = RID()) 🔗

Зробіть з'єднання пазового суглоба.


void joint_make_pin(joint: RID, anchor: Vector2, body_a: RID, body_b: RID = RID()) 🔗

Зробіть штепсельний суглоб. Якщо body_b є порожньою RID, то body_a прикріплюється до точки anchor (глибока глобальна координація); інакше body_a прикріплюється до body_b в точці Anchor (поважається в глобальних координати). Щоб встановити параметри, які специфічні для контактного суглоба, див. pin_joint_set_param().


void joint_set_param(joint: RID, param: JointParam, value: float) 🔗

Встановлює значення заданого параметра з'єднання.


bool pin_joint_get_flag(joint: RID, flag: PinJointFlag) const 🔗

Отримує прапорець штифтового з'єднання.


float pin_joint_get_param(joint: RID, param: PinJointParam) const 🔗

Повертає значення параметра штифтового з'єднання.


void pin_joint_set_flag(joint: RID, flag: PinJointFlag, enabled: bool) 🔗

Встановлює прапорець штифтового з'єднання.


void pin_joint_set_param(joint: RID, param: PinJointParam, value: float) 🔗

Встановлює параметр штифтового з'єднання.


RID rectangle_shape_create() 🔗

Створює форму прямокутника 2D на сервері фізики та повертає RID, що ідентифікує його. Використовуйте _set_data() для встановлення піввидатків прямокутника.


RID segment_shape_create() 🔗

Створює форму сегмента 2D в фізичному сервері, і повертає RID, що ідентифікує його. Використовуйте _set_data() для встановлення початкових точок сегмента.


RID separation_ray_shape_create() 🔗

Створює форму 2D розділення променів у фізичному сервері та повертає RID, що ідентифікує його. Використовуйте _set_data() для встановлення довжини форми і `` і `` та slide_on_slope властивостей.


void set_active(active: bool) 🔗

Активувати або деактивувати сервер фізики 2D. Якщо active є false, то сервер фізики нічого не буде робити на своєму фізичному етапі.


Variant shape_get_data(shape: RID) const 🔗

Повертаємо дані форми, що визначає конфігурацію форми, такі як піввидатки прямокутника або відрізки опалубки форми. Див. _set_data() для точного формату даних в кожному випадку.


ShapeType shape_get_type(shape: RID) const 🔗

Повертає тип фігури.


void shape_set_data(shape: RID, data: Variant) 🔗

Налаштовує дані форми, що визначає конфігурацію форми. data, щоб бути передані в залежності від типу форми (див. _git_get_type()):

  • SHAPE_WORLD_BOUNDARY: масив довжиною два, що містять Vector2 нормальний напрямок і float відстань d,

  • SHAPE_SEPARATION_RAY: словник, що містить ключ `` довжиною`` з значенням float та ключем slide_on_slope з значенням bool,

  • SHAPE_SEGMENT: Rect2 rect, що містить першу точку сегмента в rect.position і другу точку сегмента rect.size,

  • SHAPE_CIRCLE: float radius,

  • SHAPE_RECTANGLE: Vector2 half_extents,

  • SHAPE_CAPSULE: масив довжиною два (або Vector2), що містить float height і float radius,

  • SHAPE_CONVEX_POLYGON: або PackedVector2Array точок, що визначають конвекційний полігон в проти годинникової стрілки (звичайно з кожного сегмента, що утворюється послідовними точками, обчислюється внутрішньо), або PackedFloat32Array довжини, що вирізняється чотирим, так що кожен 4-рівний float містить координати точки, що слідують координати годинникової вихідної нормальної вектора до сегмента між поточною точкою і наступною точкою,

  • SHAPE_CONCAVE_POLYGON: PackedVector2Array довжиною дівидимий на два (учня пара точок утворює один сегмент).

Попередження: У випадку SHAPE_CONVEX_POLYGON цей метод не перевіряє, якщо точки, що поставляються фактично, утворюють конвекційний полігон (не схожий на CollisionPolygon2D.polygon майно).


RID space_create() 🔗

Створення простору 2D в фізичному сервері та повертає RID, що ідентифікує його. Простір містить тіла і ділянки, а також контролює формування фізико-імплантаційного моделювання об'єктів в ньому.


PhysicsDirectSpaceState2D space_get_direct_state(space: RID) 🔗

Повертає стан простору, PhysicsDirectSpaceState2D. Цей об'єкт можна використовувати для запитів на колізії/перетини.


float space_get_param(space: RID, param: SpaceParameter) const 🔗

Повертає значення заданого параметра простору.


bool space_is_active(space: RID) const 🔗

Повертаємо true, якщо простір активний.


void space_set_active(space: RID, active: bool) 🔗

Активує або деактивує простір. Якщо active є false, то сервер фізики нічого не буде робити з цим простором у своєму фізичному крокі.


void space_set_param(space: RID, param: SpaceParameter, value: float) 🔗

Встановлює значення заданого параметра простору.


RID world_boundary_shape_create() 🔗

Створює 2D світову граничну форму у фізичному сервері, і повертає RID, що ідентифікує його. Використовуйте _set_data(), щоб встановити нормальний напрямок форми та властивості відстані.