물리 엔진: 복원력 설정
이 문서는 물리 엔진에서 복원력(restitution)을 설정하는 방법에 대해 설명합니다. 복원력은 물체가 충돌 후 얼마나 튕겨 나가는지를 결정하는 값으로, 일반적으로 0과 1 사이의 값을 사용합니다. 필요에 따라 더 높은 값을 사용할 수도 있지만, 그 결과는 예측할 수 없습니다.
함수 설명
physics_set_restitution
이 함수는 인스턴스에 바인딩된 피xture의 복원력 값을 설정하는 데 사용됩니다. 피xture를 인스턴스에 바인딩할 때 physics_fixture_bind
를 사용하면 바인딩된 피xture의 "id"가 반환됩니다. 이 "id"를 사용하여 언제든지 복원력 값을 설정할 수 있습니다.
구문
physics_set_restitution(fixture, restitution)
인수
인수 | 유형 | 설명 |
---|---|---|
fixture | Physics Fixture ID | 바인딩된 피xture의 id |
restitution | Real | 적용할 새로운 복원력 값 |
반환값
- N/A
예제
다음은 바인딩된 물리 속성의 현재 복원력 값을 가져오고, 이를 다른 값으로 설정하는 코드입니다.
var rest = physics_get_restitution(fix_id);
physics_set_restitution(fix_id, rest * 2);
위의 코드는 바인딩된 물리 속성의 현재 복원력 값을 가져온 후, 이를 두 배로 설정합니다.
활용 예제
- 충돌 후 튕겨 나가는 물체의 복원력 조정
gml var current_restitution = physics_get_restitution(fixture_id); physics_set_restitution(fixture_id, current_restitution + 0.1);
- 특정 상황에서 복원력 감소
gml if (is_on_ground) { physics_set_restitution(fixture_id, 0.2); }
- 게임 레벨에 따라 복원력 변경
gml if (current_level == 2) { physics_set_restitution(fixture_id, 0.8); } else { physics_set_restitution(fixture_id, 0.5); }
- 물체의 속도에 따라 복원력 조정
gml var speed = physics_get_velocity(fixture_id); if (speed > 10) { physics_set_restitution(fixture_id, 0.9); }
이와 같은 방법으로 복원력을 조정하여 게임 내 물체의 물리적 반응을 다양하게 설정할 수 있습니다.