本文参考自http://blog.csdn.net/zzhboy/article/details/9320305,同时结合自身实际操作时遇到的一些问题做下记录,初次写博,同样初学cocos2d-x引擎,文章中如有一些错误的地方,欢迎各大神指出,谢谢~
cocos2d-X封装了simpleAudioEngine用于跨平台,所以在项目中我们直接导入#include "simpleAudioEngine.h"头文件,就能用这个simpleAudioEngine了,
在已有音效文件的前提下,我们添加一个播放背景音乐的效果就很简单了,只要下面这句语句就能简单的实现:
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("bg.mp3", true);
//把目前状态设置为播放状态
CCUserDefault::sharedUserDefault()->setBoolForKey("isplay", true);
就能播放声音了,当然,个人爱好问题,有些人喜欢关掉背景音玩游戏,有些人喜欢打开,so ,我们就需要一个设置背景音效的开关来完成这个事情。
请看如下代码:
// 首先,通过一个key,获取控制开关的状态, 如果检查到当前为关状态,则设置暂停背景音乐
if(CCUserDefault::sharedUserDefault()->getBoolForKey("isplay", false))
{
CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
CCUserDefault::sharedUserDefault()->setBoolForKey("isplay", false);
}
//否则, 就播放背景音乐
else
{
CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
CCUserDefault::sharedUserDefault()->setBoolForKey("isplay", true);
}
当然,以上代码只是函数内处理流程,需要另外实现开关按钮,同样也是通过:
if(CCUserDefault::sharedUserDefault()->getBoolForKey("isplay", false))
语句来获取当前的状态。