您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x 3.9教程:3.音乐的播放

2016-04-03 14:26 507 查看

3. 音乐的播放

在游戏中,一般音乐分两大类型,一种是长时间播放的背景音乐,一种是根据游戏事件播放的短时间音乐(音效)。
在Cocos2d-X中,使用SimpleAudioEngine类来播放两种类型的声音:

1.1. 播放背景音乐

CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("backgroundmusic.mp3",true);//此种方法为直接播放,也可用preLoadXXX方法先加载再播放

1.2. 播放音效

音效一般是对应的特定事件发生时,再播放。因此,为了避免音效文件第一次加载时可能会引起的卡顿(等待),一般采用初始化时先加载,事件发生时再播放的方法:
①预先加载音效文件
#include "cocos2d/cocos/audio/include/SimpleAudioEngine.h"
CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("1.mp3");

CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("2.mp3");

CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("3.mp3");

CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("4.mp3");

②在对应的事件中播放
本例是一个Menu的4个菜单项对应的事件来播放相应的音效。
void HelloWorld::menuCloseCallback(Ref*pSender)

{

switch (((MenuItem*)pSender)->getTag())

{

case 1:

CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("1.mp3");

break;

case 2:

CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("2.mp3");

break;

case 3:

CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("3.mp3");

break;

case 4:

CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("4.mp3");

break;

}

}
注意,声音的加载和播放必须文件名一致!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: