遊戲開發cocos2d-x實戰(4) -- 音效引擎SimpleAudioEngine

1、音效引擎

(1)、背景音樂

(1) 預加載背景音樂文件
void preloadBackgroundMusic(const char* filePath);
(2) 停止背景音樂
void stopBackgroundMusic(bool releaseData = false)
(3) 暫停背景音樂
void pauseBackgroundMusic();
(4) 繼續背景音樂
void resumeBackgroundMusic();
(5) 從頭開始背景音樂
void rewindBackgroundMusic();
(6) 取背景音樂音量
float getBackgroundMusicVolume();
(7) 設背景音樂音量
void setBackgroundMusicVolume(float volume);

(2)、音效

(1) 取音效音量
float getEffectsVolume();
(2) 設音效音量
void setEffectsVolume(float volume);
(3) 播放音效
unsigned int playEffect(const char* filePath, bool loop = false,loat pitch = 1.0f, float pan = 0.0f, float gain = 1.0f);
(4) 暫停音效
void pauseEffect(unsigned int soundId);
(5) 暫停所有音效
void pauseAllEffects();
(6) 重開指定音效
void resumeEffect(unsigned int soundId);
(7) 重開所有音效
void resumeAllEffects();
(8) 停止指定音效
void stopEffect(unsigned int soundId);
(9) 停止所有音效
void stopAllEffects();
(10) 預加載音效
void preloadEffect(const char* filePath);
(11) 卸載
void unloadEffect(const char* filePath);

2、實戰紀錄

	switch (index)
	{
	case 0: // "play bg music",
		filename = "music.mid";
		SimpleAudioEngine::getInstance()->playBackgroundMusic("music.mid");
		break;
	case 1:// "stop bg music"
		SimpleAudioEngine::getInstance()->stopBackgroundMusic();
		break;
	case 2: // "pause bg music"
		SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
		break;
	case 3: //"resume bg music",
		SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
		break;
	case 4://"rewind bg music",
		SimpleAudioEngine::getInstance()->rewindBackgroundMusic();
		break;
	case 5://"add bg volume",

		m_fBGVolume += 0.1;
		SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(m_fBGVolume);
		break;
	case 6://"sub bg volume",
		m_fBGVolume -= 0.1;
		SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(m_fBGVolume);
		break;
	case 7://"	play effect"

		m_nEffectID = SimpleAudioEngine::getInstance()->playEffect("effect1.wav");
		break;
	case 8://"stop effect",
		SimpleAudioEngine::getInstance()->stopEffect(m_nEffectID);
		break;
	case 9://"pause effect",
		SimpleAudioEngine::getInstance()->pauseEffect(m_nEffectID);
		break;
	case 10://"resume effect",
		SimpleAudioEngine::getInstance()->resumeEffect(m_nEffectID);
		break;
	case 11://"add effect volume",
		m_fEffectVolume = SimpleAudioEngine::getInstance()->getEffectsVolume();
		m_fEffectVolume += 0.1;
		SimpleAudioEngine::getInstance()->setEffectsVolume(m_fEffectVolume);
		break;
	case 12://"sub effect volume",
		m_fEffectVolume = SimpleAudioEngine::getInstance()->getEffectsVolume();
		m_fEffectVolume -= 0.1;
		SimpleAudioEngine::getInstance()->setEffectsVolume(m_fEffectVolume);
		break;
	}

3、實戰源代碼分享

分享代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章