audio_play_sound 함수 설명서
`audio_play_sound` 함수는 게임 내에서 어떤 사운드 자산(Asset)을 재생하는 기능을 제공합니다. 이 함수에 대해 자세히 알아보겠습니다.
## 주요 개념
- **사운드 자산 (Sound Asset)**: 게임에서 사용할 오디오 파일입니다.
- **우선 순위 (Priority)**: 같은 시간에 재생될 수 있는 사운드의 수가 제한된 경우, 우선 순위에 따라 어떤 사운드가 중지될지를 결정하는 값입니다. 값이 클수록 우선 순위가 높습니다.
- **루프 (Loop)**: sound가 반복해서 재생될지 여부를 설정합니다. `true`이면 반복하고, `false`이면 한 번만 재생됩니다.
## 함수 사용법
### 문법
```gml
audio_play_sound(index, priority, loop, [gain], [offset], [pitch], [listener_mask]);
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| index | Sound Asset or Audio Queue ID | 플레이할 사운드의 인덱스 |
| priority | Real | 사운드 우선 순위를 설정합니다. |
| loop | Boolean | 사운드를 반복할지 여부 설정 (true/false). |
| gain | Real | 사운드 인스턴스의 음량 (기본값: 1). |
| offset | Real | 사운드를 시작할 시간 (초 단위). 기본값은 자산 레벨 오프셋입니다. |
| pitch | Real | 사운드의 높낮이 (pitch) 설정. |
| listener_mask | Real | 사운드를 위한 비트마스크 데이터. HTML5에서는 효과가 없음. |
반환값
- Sound Instance ID: 재생된 사운드의 고유 인스턴스 ID를 반환합니다.
예제 코드
예제 1: 기본 사용
if (health <= 0) {
lives -= 1;
audio_play_sound(snd_PlayerDead, 10, false);
}
위 코드는 health 변수가 0 이하일 때 lives 수치를 1 감소시키고, 플레이어가 죽는 사운드를 재생합니다.
예제 2: 선택적 속성 사용
if (bbox_left > room_width) {
audio_play_sound(snd_Goodbye, 10, false, 1.1, 0, 2);
}
이 코드는 인스턴스가 방의 오른쪽 경계를 넘어갈 경우 Goodbye 사운드를 재생하며, 이때 gain을 1.1, pitch를 2로 설정합니다.
예제 3: 자산 및 인스턴스 속성 조정
audio_sound_gain(snd_Explosion, 0.7);
audio_sound_set_track_position(snd_Explosion, 2);
audio_play_sound(snd_Explosion, 10, false, 0.5);
audio_play_sound(snd_Explosion, 20, false, 1, 0);
위 코드는 폭발 사운드를 여러 번 재생합니다. 먼저, snd_Explosion의 gain을 0.7로 설정하고, 재생 위치를 2초로 설정합니다. 이후 두 개의 인스턴스에서 사운드를 재생하며, 첫 번째 인스턴스는 0.5의 gain과 2초 후에 재생됩니다. 두 번째 인스턴스는 기본 gain을 1로 유지하여 전체 0.7의 음량으로 재생됩니다.
결론
audio_play_sound 함수는 고급 사운드 효과를 단순하게 처리할 수 있는 기능을 제공합니다. 다양한 매개변수를 활용하여 게임 내에서 효과적인 오디오 경험을 만들어보세요! ```