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

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;

}

}

注意,声音的加载和播放必须文件名一致!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值