음성 재생 상태 확인 함수 (audio_is_playing)
이 문서에서는 audio_is_playing 함수에 대해 설명합니다. 이 함수는 주어진 소리가 현재 재생되고 있는지 확인합니다. 소리는 단일 인스턴스일 수도 있고, 여러 인스턴스를 가진 사운드 자산일 수도 있습니다.
기능 설명
- 소리 인스턴스 확인:
audio_play_sound,audio_play_sound_at,audio_play_sound_on,audio_play_sound_ext함수를 사용하여 소리의 인덱스를 변수에 저장하고, 해당 소리의 재생 여부를 확인할 수 있습니다. - 여러 인스턴스 확인: 소리 자산의 경우, 주어진 소리의 모든 인스턴스를 체크하여 어떤 인스턴스라도 재생 중이라면 함수는
true를 반환합니다. 그 외의 경우에는false를 반환합니다. - 일시 정지 상태: 체크하는 사운드가 이전에
audio_pause_sound함수로 일시 정지되었더라도, 함수는 여전히true를 반환합니다.
문법
audio_is_playing(index);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| index | Sound Asset 또는 Sound Instance ID | 체크할 소리의 인덱스 |
반환값
- Boolean: 소리가 재생되고 있으면
true, 그렇지 않으면false.
예제
소리가 재생되고 있는지 확인하여 재생되지 않는 경우 소리를 재생합니다.
if !audio_is_playing(snd_Waterfall) {
audio_play_sound_at(snd_Waterfall, x, y, 0, 300, true, 1);
}
위 코드는 변수 "snd_Waterfall"에 인덱스가 있는 소리가 현재 재생 중인지 확인하고, 재생 중이지 않다면 해당 소리를 위치 (x, y)에서 떨어져서 재생합니다. 이때 다음과 같은 설정이 있습니다: - 감소 거리: 300 - 우선 순위: 1 (낮은 우선 순위)
다양한 활용 및 응용 예제
- 배경 음악 제어: 게임의 특정 구역에 진입할 때 배경 음악을 자동으로 켜고 끌 수 있습니다.
gml if !audio_is_playing(snd_BackgroundMusic) { audio_play_sound(snd_BackgroundMusic, 1, true); } - 특정 상황에서 효과음 재생: 적을 처치했을 때 효과음을 재생하도록 할 수 있습니다.
gml if !audio_is_playing(snd_EnemyDeath) { audio_play_sound(snd_EnemyDeath, 1, false); } - 환경 사운드 관리: 특정 지역에 들어갔을 때 다양한 환경 효과음을 켜고 끌 수 있습니다.
gml if !audio_is_playing(snd_Rain) && is_in_rain_area { audio_play_sound(snd_Rain, 1, true); } - 소리 재생 및 제어 전환: 플레이어가 특정 조건을 충족할 때에 음향 효과를 켜거나 끌 수 있습니다.
gml if is_condition_met { if !audio_is_playing(snd_SpecialEffect) { audio_play_sound(snd_SpecialEffect, 1, false); } } else { if audio_is_playing(snd_SpecialEffect) { audio_pause_sound(snd_SpecialEffect); } }
결론
audio_is_playing 함수는 게임 내 소리의 상태를 확인하고 관리하는 데 유용합니다. 이를 통해 사용자는 더욱 생동감 있는 환경을 조성할 수 있습니다. 사용자의 게임 경험을 최적화하기 위해 이 기능을 잘 활용해보세요!