os_is_paused 함수 설명
모바일 기기를 개발할 때, 게임이 여전히 포커스를 받고 있는지 확인하는 방법이 필요합니다. 특히 iOS, Android 또는 Windows Phone 기기에서는 전화 통화나 다른 앱으로 인해 게임이 중단될 수 있습니다. 이 함수는 기기가 일시 정지되었는지 확인하는 데 사용됩니다.
이 함수는 코드 블록 내에 포함된 코드를 실행한 후, 게임이 즉시 일시 정지됩니다. 이는 기기가 게임을 백그라운드 프로세스로 캐시하기 때문입니다. 따라서 아래의 예제 코드와 같은 경우, 생성될 인스턴스는 게임이 캐시 상태에서 다시 시작될 때까지 나타나지 않거나 이벤트가 실행되지 않습니다. 이러한 이유로 os_is_paused
함수를 호출하여 알람을 설정하고, 알람 이벤트에서 일시 정지 메뉴를 생성하거나 음악을 재시작하는 것이 좋습니다.
Windows, Ubuntu (Linux), MacOS 또는 HTML5 플랫폼에서 이 함수를 사용할 경우, 게임이 포커스를 잃으면 함수가 한 번 true
로 전환되고, 게임이 다시 포커스를 받을 때까지 false
로 돌아옵니다. 이러한 플랫폼은 앱과 게임을 캐시하지 않기 때문에 백그라운드에서 계속 실행됩니다.
문법
os_is_paused()
반환값
- Boolean: 게임이 일시 정지되었는지 여부
예제 코드
if (os_is_paused()) {
if (!instance_exists(obj_PauseMenu)) {
instance_create_layer(0, 0, "Controllers", obj_PauseMenu);
}
}
위 코드는 게임이 일시 정지되었는지 확인하고, 만약 일시 정지되었다면 "obj_PauseMenu" 객체의 인스턴스가 존재하지 않을 경우 생성합니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 게임이 일시 정지될 때 배경 음악을 멈추고, 일시 정지 메뉴를 표시하는 코드 |
2 | 게임이 다시 시작될 때 이전 상태로 복원하는 코드 |
3 | 일시 정지 상태에서 사용자에게 옵션을 제공하는 메뉴 생성 코드 |
4 | 게임이 일시 정지될 때 통계 정보를 저장하는 코드 |
5 | 일시 정지 상태에서 특정 애니메이션을 멈추는 코드 |
// 예제 1: 일시 정지 시 배경 음악 멈추기
if (os_is_paused()) {
audio_stop_sound(background_music);
}
// 예제 2: 게임 재시작 시 상태 복원
if (!os_is_paused() && previous_state != current_state) {
restore_game_state(previous_state);
}
// 예제 3: 일시 정지 메뉴 생성
if (os_is_paused() && !instance_exists(obj_OptionsMenu)) {
instance_create_layer(0, 0, "Menus", obj_OptionsMenu);
}
// 예제 4: 통계 정보 저장
if (os_is_paused()) {
save_game_statistics();
}
// 예제 5: 애니메이션 멈추기
if (os_is_paused()) {
instance_deactivate_all(true);
}