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;
}
}
注意,声音的加载和播放必须文件名一致!
相关文章推荐
- Cocos2d-x 3.9教程: 2.菜单项的基本使用
- Cocos2d-x 3.9教程:1.场景的切换
- Cocos2d-x 3.0心得(01)-图片载入与混合模式
- cocos2d-JS 第三炮Helloworld及Cocos Creater简介(宝贵的经验!)
- Cocos2d-x 3.x物理引擎概述(2)
- Cocos2d-x 3.x物理引擎概述(1)
- Cocos2d-x各版本项目的配置与创建汇总贴
- Quick cocos2dx-Lua中计时器(scheduler)
- cocos2dx系列--颜色混合BlendFunc
- cocos2djs拷贝数据方法
- COCOS2D-X 抖动效果 CCShake
- Cocos2dx通过批处理快速的创建工程
- cocos::触摸跟随移动
- cocos2dx集成友盟社会化分享
- cocos2d-JS 第二炮Cocos Creater(使用当下最新的编辑器,带你ZB装带你fly)
- 17、Cocos2dx 3.0游戏开发找小三之内置的经常使用层:三剑客LayerColor、LayerGradient、Menu
- 转载自笨木头的Cocos2d-x Auto-batching分析
- Cocos2d 官网介绍,新手必看!!!!!!!!!!!!!!!!!!!!!!!!!
- Quick-Cocos2dx 快速了解
- cocos:有限状态机(消息驱动)