물리 시뮬레이션 일시 정지 기능
물리 시뮬레이션이 정상적으로 작동하기 위해서는 연속적이어야 하며, 중단하거나 시작할 수 없고, 인스턴스가 방 안에서 갑자기 한 곳에서 다른 곳으로 이동할 수 없습니다. 그러나 장치 운영 체제가 일시 정지된 경우와 같이 시뮬레이션을 일시 정지해야 할 때가 있습니다. 이때 사용할 수 있는 함수가 바로 physics_pause_enable
입니다.
기능 설명
이 함수는 플래그가 true
로 설정되면 시뮬레이션을 일시 정지합니다. 플래그가 다시 false
로 설정될 때까지 추가적인 물리 계산은 수행되지 않습니다. 이 기능은 방 안의 모든 인스턴스를 비활성화하고 싶을 때 특히 유용합니다. 비활성화된 상태에서도 물리적 객체는 여전히 계산되고 시뮬레이션됩니다.
문법
physics_pause_enable(flag)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
flag | bool | 시뮬레이션을 일시 정지하려면 true , 다시 시작하려면 false 로 설정합니다. |
반환 값
이 함수는 반환 값을 가지지 않습니다.
활용 예제
다음은 운영 체제가 일시 정지되었는지 확인하고, 일시 정지된 경우 물리 세계를 일시 정지하고 모든 인스턴스를 비활성화한 후 일시 정지 메뉴 인스턴스를 생성하는 코드입니다.
if (os_is_paused()) {
physics_pause_enable(true);
instance_deactivate_all(true);
instance_create_layer(x, y, "Controllers", obj_PauseMenu);
}
추가 활용 예제
- 게임 일시 정지 기능 구현
gml if (keyboard_check_pressed(vk_escape)) { if (!is_paused) { physics_pause_enable(true); is_paused = true; } else { physics_pause_enable(false); is_paused = false; } }
- 일시 정지 상태에서 UI 업데이트
gml if (is_paused) { draw_text(100, 100, "게임이 일시 정지되었습니다."); }
- 일시 정지 시 사운드 정지
gml if (is_paused) { audio_stop_sound(sound_gameplay); } else { audio_play_sound(sound_gameplay, 1, true); }
이와 같이 physics_pause_enable
함수를 활용하여 게임의 물리 시뮬레이션을 효과적으로 제어할 수 있습니다.