[꼭대기] [cocos2d - x 입문 실전] 위 챗 비행기 대전 의 14: 배경 음악 과 음향 효과
전체 게임 이 완성 되 었 으 니 컴퓨터 에서 시원 하 게 비행 기 를 탈 수 있 습 니 다!근 데 뭐 가 빠 진 것 같 아 요?
참, 배경 음악 과 게임 사 운 드.처음에 우리 가 cocos2dx 프로젝트 를 만 들 때 선택 할 옵션 이 있 었 던 것 을 기억 하 십 니까?SimpleAudioEngine!그래, 얘 야.
1. 음악 형식
공식 문서 에 이렇게 쓰 여 있 습 니 다.
Android: android CocosDenshion android.media.MediaPlayer 。
iOS: IOS Cocos2d-x CocosDenshion Cocos2d-iphone ,mp3,caf 。
windows:.mid, .wav are supported. Note that mp3 is not supported.
Marmalade:mp3
windows 는 mp3 를 지원 하지 않 는 다 고 하지만 실제로 사용 할 때 mp3 도 windows 에서 정상적으로 재생 할 수 있 는 것 으로 나 타 났 다.
2. 배경 음악
배경 음악 은 전체 게임 에서 같은 시간 에 하나만 있 을 수 있다.
(1) 헤더 파일 을 추가 하고 네 임 스페이스 를 사용 합 니 다.
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;// SimpleAudioEngine
물론 Simple Audio Engine 을 사용 할 때 이렇게 쓸 수도 있 습 니 다.
CocosDenshion::SimpleAudioEngine
(2) 배경 음악 미리 불 러 오기
우 리 는 Welcome Scene 에 배경 음악 을 미리 불 러 옵 니 다. 사실 이 나 무 는 유용 합 니 다. 나중에 설명 합 니 다.
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic("sound/game_music.mp3");
(3) 배경 음악의 기타 API
SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sound/game_music.mp3",true);// ,true
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();// , ,
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();//
SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();//
SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()// ,
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5);// 0.0-1.0
게임 과정 에서 일시 정지, 끝 같은 곳 에서 어디 를 통제 해 야 하 는 지 는 말 하지 않 겠 습 니 다. 취향 을 보 겠 습 니 다.
3. 게임 사 운 드
게임 의 음향 효 과 는 겹 칠 수 있다.
(1) 같은 헤더 파일 과 네 임 스페이스
(2) 사 운 드 미리 불 러 오기
SimpleAudioEngine::sharedEngine()->preloadEffect("sound/bullet.mp3");
(3) 게임 사 운 드 의 기타 API
SimpleAudioEngine::sharedEngine()->playEffect("sound/bullet.mp3",false);// ,false
SimpleAudioEngine::sharedEngine()->stopEffect(m_nSoundId);// , , playEffect
SimpleAudioEngine::sharedEngine()->stopAllEffects();//
SimpleAudioEngine::sharedEngine()->pauseEffect(m_nSoundId);//
SimpleAudioEngine::sharedEngine()->resumeEffect(m_nSoundId);//
SimpleAudioEngine::sharedEngine()->pauseAllEffects();//
SimpleAudioEngine::sharedEngine()->resumeAllEffects();//
SimpleAudioEngine::sharedEngine()->setEffectsVolume(0.5);// 0.0-1.0
SimpleAudioEngine::sharedEngine()->unloadEffect("sound/bullet.mp3");//
4. 자원 방출
Simple Audio Engine 의 소스 코드 를 보면 preload Effect () 를 사용 할 때 엔진 이 음향 효 과 를 추가 하 는 것 을 발견 할 수 있 습 니 다.
static EffectList s_List;
그 중에서 EffectList 는 맵 으로 음향 효과 파일 과 이 를 통 해 얻 은 hash 값 을 포함 합 니 다.따라서 메모리 에 불 러 오 면 음향 효과 의 로드 효율 을 높 일 수 있다.
따라서 사용 이 끝 난 후에 음향 효과 자원 을 방출 하고 호출 하 는 것 을 기억 해 야 합 니 다.
void SimpleAudioEngine::end()
sList 가 가리 키 는 음악 자원 방출.
preloadBackground Music () 의 실현 을 살 펴 보 자.
void SimpleAudioEngine::preloadBackgroundMusic(const char* pszFilePath)
{
}
니 마, 공 실현 이 라 니...마이너스 롤러 굵기...
다시 보기 playBackground Music () 소스 코드:
void SimpleAudioEngine::playBackgroundMusic(const char* pszFilePath, bool bLoop)
{
if (! pszFilePath)
{
return;
}
sharedMusic().Open(_FullPath(pszFilePath), _Hash(pszFilePath));
sharedMusic().Play((bLoop) ? -1 : 1);
}
배경 음악 이라는 물건 을 플레이 할 때 만 불 러 오 다 니....................................................그래, 네가 이 겼 어...
사실 관심 있 는 학생 들 은 음향 효 과 를 모방 하여 preloadBackground Music 을 실현 한 다음 에 재생 할 때 바로 재생 하면 효율 이 훨씬 빨 라 집 니 다.소스 코드 의 뜻 을 이해 하지 못 했 는데, 공 성 사자 가 재떨이 치 느 라 바 빠 서 쓸 시간 이 없 는 건 가?
효과 도
이 절 은 효과 도가 없 으 니 스스로 뇌 보 하 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cocos Studio v3.x ListView에 PanelNode를 동적으로 추가해보기Cococs Studio에서 ListView를 설정한 BaseNode와 파트 부분이 되는 PasrtNode를 작성. ListView에 PasrtNode를 추가해 가고, 빨리 GridView적인 것을 만드는 비망록. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.