2.7 효과음 재생
효과음 재생역시 이미지와 크게 다리지 않다. 효과음을 메모리로 로드한 이후 재생하는 단계를 거친다. 효과음도 메모리로 로드하게 되면 식별코드를 부여 받게 된다. 이 식별코드를 반환하는 함수는 LoadSoundMem함수이며 레퍼런스는 여기를 확인한다.
선언 |
int LoadSoundMem( char *FileName ) ; |
기능 |
사운드 파일을 메모리로 로드 |
인수 |
FileName : 메모리에 로드한 사운드파일의 경로 및 파일명 문자열 포인터 |
지원 가능한 포맷은 wav, mp3, ogg 3종류이며 다음과 같은 특성을 갖는다.
wav : 압축하지 않은 사운드파일.
mp3 : 압축된 사운드 파일. 별도의 라이센스가 필요.
ogg : 압축된 사운드 파일. 프리 라이센스.
사운드를 메모리로 로드한 이후 재생을 하기위해서는 별도의 PlaySoundMem함수를 사용한다. 레퍼런스는 여기서 확인.
선언 |
int PlaySoundMem( int SoundHandle , int PlayType ) ; |
기능 |
메모리에 로드된 사운드 재생 |
인수 |
SoundHanle : 재생할 사운드의 핸들값 PlayType : 재생형식 - DX_PLAYTYPE_NORMAL : 기본 재생 - DX_PLAYTYPE_BACK : 백그라운드 재생 - DX_PLAYTYPE_LOOP : 루프 재생 |
보통 기본재생은 사용하지 않는다. 기본재생을 할 경우 사운드 재생이 끝날 때 까지 진행상황이 중지된다. 효과음으로 사용시에는 백그라운드 재생 계속해서 재생되는 BGM의경우 루프 재생을 이용한다.
사용예제
#include <DxLib.h> int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); int Handle, Count=0; Handle = LoadSoundMem("sound/1up.wav"); // sound/1up.wav를 로드, 핸들값 반환 while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){ if( Count % 120 == 0 ){ // 2초에 한번 (60hz기 때문에) PlaySoundMem( Handle, DX_PLAYTYPE_BACK ); // 효과음 재생 } Count++; } DxLib_End(); return 0; } |
실행결과
'DX라이브러리' 카테고리의 다른 글
2.9 키 입력 (0) | 2014.12.23 |
---|---|
2.8 이미지를 분할하여 로드 (0) | 2014.12.23 |
2.6 랜덤값을 얻어보자 (0) | 2014.12.23 |
2.5 텍스트 표현 (0) | 2014.12.23 |
2.4 가산블렌딩 (0) | 2014.12.23 |