2023년 11월 24일 금요일

[cocos2d-x] 2d 게임엔진으로 플래피버드 클론 게임 만들기 (사운드 다루기)

 


SimpleAudioEngine을 사용하면, win32 환경에서 소리가 나오다 끊어진다던가 하는

호환성 문제가 있으니 AudioEngine을 사용하는게 좋습니다.

​

id와 콜백을 통해 다음 효과음이 나오는 걸 막거나 하면 소리가 묻혀버리는 경우가 있고, 이게 어색하게 느껴질 수 있기 때문에

보통은 현재 연주중인 소리를 멈추고 다음 소리를 놓치지 않고 나오게 하는게 보통입니다.

​

이번에는 사운드 id 관리와 콜백의 사용 예를 보기 위해 앞서 나오고 있는 효과음을 끊지 않도록 했습니다.

​

​

사운드 id를 남겨서 관리하면 해당 사운드의 pause나 resume, 재생 위치 이동, 특정 사운드만 볼륨 조정 등을 할 수 있습니다.

환경 설정 창에서 음악용/효과음용/보이스용 볼륨을 따로 따로 조정하는것도 이것을 이용합니다.

​

​

단순히 한 번 내고 잊어버리는 짧은 효과음은 굳이 id를 기록하지 않고 콜백도 받지 않아도 됩니다.

짧은 간격으로 많은 효과음을 일제히 재생하지 않도록, 효과음 연출을 설계할 때 주의하는게 필요합니다.

​

한 번에 총알을 수십발씩 발사하는 슛뎀업에서 총알 하나 생성할 때마다 효과음을 연주하는게 아니라,

발사가 시작될 때 한 번만 효과음을 연주한다던가 하는 예가 있습니다.

​

​

tmi :

코코스 3.xx대의 중간 버전 쯤에서는 AudioEngine::INVALID_AUDIO_ID의 정의에 오타가 있어 AudioEngine::INVAILD_AUDIO_ID 로 된 버전이 있습니다.

댓글 없음:

댓글 쓰기

[cocos2d-x] 2D 엔진으로 만드는 3D 슈팅게임

왜 2D 게임엔진으로 3D 게임 만들려고 삽질을 합니까?   예 뭐 3D 게임 만드는데 좋은 엔진은 아닙니다. 셰이더도 부실하고 물리엔진 쓰기도 까다롭고. 요즘은 외부업체 SDK 인트하기도 점점 힘들어지고.. ​ 그래도 기왕 해 본 거, 여기까지 왔으...