DX라이브러리2014. 12. 23. 14:05

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
Posted by 캡슐리어