一個遊戲,聲音也是非常的重要,其實cocos2dx裏面的簡單音效引擎的使用是非常簡單的。我這裏只不過是用一個類對所有的音效進行管理罷了。
Audio.h
#ifndef _AUDIO_H_
#define _AUDIO_H_
class Audio{
public:
static Audio* getInstance();
void playBGM();
void playReadyGo();
void playPop();
void prepare();
void playCombo(int size);
private:
static Audio* m_instance;
};
#endif
Audio.cpp
#include "Audio.h"
#include "SimpleAudioEngine.h"
Audio* Audio::m_instance = nullptr;
Audio* Audio::getInstance(){
if(m_instance == nullptr){
m_instance = new Audio();
}
return m_instance;
}
void Audio::playBGM(){
CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("Music/music.ogg",true);
}
void Audio::playReadyGo(){
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Music/readygo.ogg",false);
}
void Audio::playPop(){
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Music/pop.ogg",false);
}
void Audio::playCombo(int size){
if(size < 5)
return;
if(size >= 10){
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Music/combo_3.ogg",false);
}else if(size >= 7){
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Music/combo_2.ogg",false);
}else {
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Music/combo_1.ogg",false);
}
}
void Audio::prepare(){
CocosDenshion::SimpleAudioEngine::getInstance()->preloadBackgroundMusic("Music/music.ogg");
CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("Music/readygo.ogg");
CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("Music/pop.ogg");
CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("Music/combo_1.ogg");
CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("Music/combo_2.ogg");
CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("Music/combo_3.ogg");
}
好了,本系列教程到此結束,第一次寫教程如有不對請見諒或指教,謝謝大家。
最後附上整個項目的源代碼