game/godot

Godot3 API - RigidBody2D

C/H 2018. 10. 23. 17:21

Godot3 API - RigidBody2D

Inherits: PhysicsBody2D < CollisionObject2D < Node2D < CanvasItem < Node < Object

Category: Core

Brief Description


2D 물리 엔진에 의해 제어되는 body.

Member Functions

void _integrate_forces ( Physics2DDirectBodyState state ) virtual
void add_central_force ( Vector2 force )
void add_force ( Vector2 offset, Vector2 force )
void add_torque ( float torque )
void apply_central_impulse ( Vector2 impulse )
void apply_impulse ( Vector2 offset, Vector2 impulse )
void apply_torque_impulse ( float torque )
Array get_colliding_bodies ( ) const
void set_axis_velocity ( Vector2 axis_velocity )
bool test_motion ( Vector2 motion, bool infinite_inertia=true, float margin=0.08, Physics2DTestMotionResult result=null )

Signals

  • body_entered ( Object body )

    Emitted when a body enters into contact with this one. contact_monitor must be true and contacts_reported greater than 0.
    body가 body와 접촉 할 때 방출됩니다. contact_monitor는 true이고 contacts_reported는 0보다 커야합니다.

  • body_exited ( Object body )

    Emitted when a body exits contact with this one. contact_monitor must be true and contacts_reported greater than 0.
    body가 body와 접촉 할 때 방출됩니다. contact_monitor는 true이고 contacts_reported는 0보다 커야합니다.

  • body_shape_entered ( int body_id, Object body, int body_shape, int local_shape )

    Emitted when a body enters into contact with this one. Reports colliding shape information. See CollisionObject2D for shape index information. contact_monitor must be true and contacts_reported greater than 0.
    body가 body와 접촉 할 때 방출됩니다.  충돌중인 쉐이프(shape) 정보가 보고됩니다. 쉐이프 인덱스 정보는 CollisionObject2D를 참조하십시오. contact_monitor는 true이고 contacts_reported는 0보다 커야합니다.

  • body_shape_exited ( int body_id, Object body, int body_shape, int local_shape )

    Emitted when a body shape exits contact with this one. Reports colliding shape information. See CollisionObject2D for shape index information. contact_monitor must be true and contacts_reported greater than 0.
    body에서 접촉된 후 빠져 나갈 때 방출됩니다. 충돌중인 쉐이프(Shape)정보가 보고됩니다. 쉐이프 인덱스 정보는 CollisionObject2D를 참조하십시오. contact_monitor가 참이어야 하며 contact_reported가 0보다 커야 합니다.

  • sleeping_state_changed ( )

    Emitted when sleeping changes.
    수면(sleep) 상태가 바뀔 때 방출됩니다.

Member Variables

  • float angular_damp - Damps the body's angular_velocity. If -1 the body will use the "Default Angular Damp" in "Project > Project Settings > Physics > 2d". Default value: -1.
    body의 angular_velocity를 감쇠시킵니다. -1 인 경우 바디는 "프로젝트> 프로젝트 설정> 물리> 2d"에서 "기본 각도 댐프"를 사용합니다. 기본값 : -1.
  • float angular_velocity - The body's rotational velocity.
    body의 회전 속도.
  • Vector2 applied_force - The body's total applied force.
    body의 총 적용 힘
  • float applied_torque - The body's total applied torque.
    body의 총 적용 토크.
  • float bounce - The body's bounciness. Default value: 0.
    body의 탄력성. 기본값 : 0.
  • bool can_sleep - If true the body will not calculate forces and will act as a static body if there is no movement. The body will wake up when other forces are applied via collisions or by using apply_impulse or add_force. Default value: true.
    참이면 body는 힘을 계산하지 않으며 움직임이 없다면 스태틱 body 역할을합니다. 충돌을 통해 또는 apply_impulse 또는 add_force를 사용하여 다른 힘이 적용되면 body가 깨어납니다. 기본값 : true.
  • bool contact_monitor - If true the body will emit signals when it collides with another RigidBody2D. See also contacts_reported. Default value: false.
    참인 경우 body가 다른  RigidBody2D와 충돌할 때 신호를 방출합니다. contacts_reported 참조하십시오. 기본값: 거짓.
  • int contacts_reported - The maximum number of contacts to report. Default value: 0.
    최대 접촉 수입니다. 기본값 0.
  • CCDMode continuous_cd - Continuous collision detection mode. Default value: CCD_MODE_DISABLED.
    지속적인 충돌 감지 모드. 기본값 : CCD_MODE_DISABLED.

    Continuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See CCD_MODE_ constants for details.
    지속적인 충돌 감지는 body를 움직이고 충돌 후 움직임을 수정하는 대신 어디에서 충돌하는지 예측하려고 합니다. 지속적인 충돌 감지는 더 느리지만 더 정밀하고 빠르게 움직이는 작은 물체와의 충돌 수를 줄일 수 있습니다. 레이캐스팅과 쉐이핑 방법을 사용할 수 있습니다. 자세한 내용은 CCD_MODE_ 상수를 참조하십시오.

  • bool custom_integrator - If true internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the _integrate_forces function.
    body에 대해 진정한 내부 강제 통합이 비활성화 된 경우 충돌 응답을 제외하고,body는 _integrate_forces 함수에 의해 결정된 대로만 이동합니다.
  • float friction - The body's friction. Values range from 0 (frictionless) to 1 (maximum friction). Default value: 1.
    body의 마찰. 값의 범위는 0 (무 마찰)에서 1 (최대 마찰)까지입니다. 기본값 : 1.
  • float gravity_scale - Multiplies the gravity applied to the body. The body's gravity is calculated from the "Default Gravity" value in "Project > Project Settings > Physics > 2d" and/or any additional gravity vector applied by Area2Ds. Default value: 1.
    body에 적용되는 중력을 곱합니다. body의 중력은 "Project> Project Settings> Physics> 2d" 또는 Area2D가 적용한 추가 중력 벡터의 "기본 중력"값에서 계산됩니다. 기본값 : 1.
  • float inertia - The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 (or negative) inertia to return to automatically computing it.
    body의 관성 모멘트. 이는 질량이나 회전의 경우: 차체를 회전시키는 데 필요한 토크량을 결정합니다. 관성 모멘트는 일반적으로 질량 및 형상에서 자동으로 계산되지만 이 함수를 사용하면 사용자 지정 값을 설정할 수 있습니다. 자동으로 계산하려면 관성을 0(또는 음)으로 설정합니다.
  • float linear_damp - Damps the body's linear_velocity. If -1 the body will use the "Default Linear Damp" in "Project > Project Settings > Physics > 2d". Default value: -1.
    body의 linear_velocity를 감쇠시킵니다. -1 인 경우 바디는 "Project> Project Settings> Physics> 2d"에서 "Default Linear Damp"를 사용합니다. 기본값 : -1.
  • Vector2 linear_velocity - The body's linear velocity.
    body의 일직선 속도.
  • float mass - The body's mass. Default value: 1.
    body의 질량. 기본값 : 1.
  • Mode mode - The body's mode. See MODE_* constants. Default value: MODE_RIGID.
    body의 모드. MODE_* 상수를 참조하십시오. 기본값 : MODE_RIGID.
  • PhysicsMaterial physics_material_override
  • bool sleeping - If true the body is sleeping and will not calculate forces until woken up by a collision or by using apply_impulse or add_force.
    True면 body는 자고 있으며 충돌로 깨어날 때까지 또는 apply_impulse 또는 add_force를 사용하여 힘을 계산합니다.
  • float weight - The body's weight based on its mass and the "Default Gravity" value in "Project > Project Settings > Physics > 2d".
    질량 및 "프로젝트> 프로젝트 설정> 물리> 2d"의 "기본 중력"값을 기준으로 한 body무게.

Enums

enum CCDMode

  • CCD_MODE_DISABLED = 0 --- Continuous collision detection disabled. This is the fastest way to detect body collisions, but can miss small, fast-moving objects.
    지속 충돌 감지가 비활성화 됩니다. body 충돌을 감지하는 가장 빠른 방법이지만 작고 빠르게 움직이는 것은 놓칠 수 있습니다.
  • CCD_MODE_CAST_RAY = 1 --- Continuous collision detection enabled using raycasting. This is faster than shapecasting but less precise.
    지속 충돌 감지 활성화되었습니다.  shapecasting보다 빠르지 만 정확하지는 않습니다.
  • CCD_MODE_CAST_SHAPE = 2 --- Continuous collision detection enabled using shapecasting. This is the slowest CCD method and the most precise.
    shapecasting을 사용하여 지속 충돌 감지 활성화. 가장 느린 CCD 방식이고 가장 정확합니다.

enum Mode

  • MODE_RIGID = 0 --- Rigid mode. The body behaves as a physical object. It collides with other bodies and responds to forces applied to it. This is the default mode.
    Rigid 모드. 본문은 실제 객체(object)로 작동합니다. 그것은 다른 body와 충돌하고 그것에 적용된 힘에 반응합니다. 이것은 기본 모드입니다.
  • MODE_STATIC = 1 --- Static mode. The body behaves like a StaticBody2D and does not move.
    스태틱(정적) 모드. 본문은 StaticBody2D처럼 작동하고 이동하지 않습니다.
  • MODE_CHARACTER = 2 --- Character mode. Similar to MODE_RIGID, but the body can not rotate.
    캐릭터(Character) 모드. MODE_RIGID와 비슷하지만 몸체는 회전 할 수 없습니다.
  • MODE_KINEMATIC = 3 --- Kinematic mode. The body behaves like a KinematicBody2D, and must be moved by code.
    키네마 틱 모드. 본문은 KinematicBody2D처럼 작동하며 코드로 이동해야합니다.

Description

This node implements simulated 2D physics. You do not control a RigidBody2D directly. Instead you apply forces to it (gravity, impulses, etc.) and the physics simulation calculates the resulting movement based on its mass, friction, and other physical properties.
이 노드는 시뮬레이션 된 2D 물리를 구현합니다. RigidBody2D를 직접 제어하지 마십시오. 대신에 힘 (중력, 충격 등)을 적용하고 물리 시뮬레이션은 질량, 마찰 및 기타 물리적 특성을 기반으로 결과 운동을 계산합니다.

A RigidBody2D has 4 behavior modes: Rigid, Static, Character, and Kinematic.
RigidBody2D에는 릿지, 스태틱, 캐릭터 및 키네마틱의 4 가지 동작 모드가 있습니다.

Note: You should not change a RigidBody2D's position or linear_velocity every frame or even very often. If you need to directly affect the body's state, use _integrate_forces, which allows you to directly access the physics state.
참고 : RigidBody2D의 위치 또는 linear_velocity를 매 프레임마다 또는 매우 자주 변경해서는 안됩니다. 본문의 상태에 직접적으로 영향을 주어야하는 경우 _integrate_forces를 사용하면 물리 상태에 직접 액세스 할 수 있습니다.

If you need to override the default physics behavior, you can write a custom force integration. See custom_integrator.
기본 물리 동작을 재 정의해야하는 경우 맞춤형 강제 통합을 작성할 수 있습니다. custom_integrator를 참조하십시오.

Member Function Description

  • void _integrate_forces ( Physics2DDirectBodyState state ) virtual

    Allows you to read and safely modify the simulation state for the object. Use this instead of Node._physics_process if you need to directly change the body's position or other physics properties. By default it works in addition to the usual physics behavior, but custom_integrator allows you to disable the default behavior and write custom force integration for a body.
    객체(objecgt)의 시뮬레이션 상태를 읽고 안전하게 수정할 수 있습니다. body의 위치 또는 다른 물리 특성을 직접 변경해야하는 경우 Node._physics_process 대신 이 값을 사용하십시오. 기본적으로 일반적인 물리 동작과 함께 작동하지만 custom_integrator를 사용하면 기본 동작을 비활성화하고 본문에 대한 사용자 지정 강제 통합을 작성할 수 있습니다.

  • void add_central_force ( Vector2 force )
  • void add_force ( Vector2 offset, Vector2 force )

    Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.
    body에 위치된 힘을 추가합니다. 힘과 body 원래 위치로부터의 오프셋은 둘 다 전역 좌표에 있습니다.

  • void add_torque ( float torque )
  • void apply_central_impulse ( Vector2 impulse )
  • void apply_impulse ( Vector2 offset, Vector2 impulse )

    Applies a positioned impulse to the body (which will be affected by the body mass and shape). This is the equivalent of hitting a billiard ball with a cue: a force that is applied instantaneously. Both the impulse and the offset from the body origin are in global coordinates.
    몸에 위치 된 충격을가합니다 (신체 질량과 모양의 영향을받습니다). 이것은 즉각적으로 적용되는 힘이라는 큐와 함께 당구 공을 치는 것과 같습니다. 임펄스와 바디 원점으로부터의 오프셋은 모두 글로벌 좌표계에 있습니다.

  • void apply_torque_impulse ( float torque )
  • Array get_colliding_bodies ( ) const

    Returns a list of the bodies colliding with this one. Use contacts_reported to set the maximum number reported. You must also set contact_monitor to true. Note that the result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.
    이 객체와 충돌하는 body의 목록을 반환합니다. contacts_reported를 사용하여 보고되는 최대수를 설정하세요. 또한 contact_monitor를 true로 설정해야합니다. 이 테스트의 결과는 움직이는 객체가 있는 직후가 아니라는 점에 유의하십시오. 성능을 위해 충돌 목록은 프레임 당 한번 물리 단계 이전에 업데이트됩니다. signal을 대신 사용해보십시오.

  • void set_axis_velocity ( Vector2 axis_velocity )

    Sets the body's velocity on the given axis. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.
    지정된 축으로 body의 속도를 설정합니다. 주어진 벡터 축의 속도는 주어진 벡터 길이로 설정됩니다. 이는 점프 동작에 유용합니다.

  • bool test_motion ( Vector2 motion, bool infinite_inertia=true, float margin=0.08, Physics2DTestMotionResult result=null )

    Returns true if a collision would result from moving in the given vector. margin increases the size of the shapes involved in the collision detection, and result is an object of type Physics2DTestMotionResult, which contains additional information about the collision (should there be one).
    지정된 벡터에서 충돌이 발생할 경우 true를 반환합니다. margin은 충돌 감지와 관련된 모양의 크기를 증가시키고 결과는 Physics2DTestMotionResult 유형의 객체이며 충돌에 대한 추가 정보를 포함합니다 (있을 경우).


반응형

'game > godot' 카테고리의 다른 글

Godot3 API - StaticBody2D  (0) 2018.10.25
Godot3 API - KinematicBody2D  (0) 2018.10.24
Godot 3 프로젝트 기본폴더 위치 설정  (0) 2018.09.22
Godot3 vscode editor 설정  (0) 2018.09.20
Godot3 Multiple resolutions  (0) 2018.09.19