游戏开发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、实战源代码分享

分享代码。

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