关于cocos2dx的背景音乐和音效(1)
来源:互联网 发布:js代码整理工具 编辑:程序博客网 时间:2024/05/21 22:50
这次分享一下在cocos2dx中怎么使用背景音乐以及音效。背景音乐一般只有一个,而音效则可以有很多,当然不同的场景你也可以使用不同的背景音乐。今天先简单介绍一下如何播放、暂停、恢复背景音乐以及音效。
首先我们需要用到Cocos2d-x自带的CocosDension库来使用声音引擎,我们需要引入头文件:
#include"SimpleAudioEngine.h"
加载音乐和音效通常是个耗时间的过程,因此为了防止由加载产生的延时导致实际播放与游戏播放不协调的现象。通常我们会在进入场景前调用以下两个方法来预加载文件:
SimpleAudioEngine::getInstance()->preloadBackgroundMusic(MUSIC_FILE ); // MUSIC_FILE是宏定义的文件名
SimpleAudioEngine::getInstance()->preloadEffect(EFFECT_FILE ); // EFFECT_FILE是宏定义的文件名
不过对于一般的小游戏,或者自己对效率要求不是很高的时候,也可以选择不使用。
音频引擎提供了播放与停止的接口,以下介绍相应接口和使用方法:
virtual voidplayBackgroundMusic(const char* pszFilePath, bool bLoop = false); //播放背景音乐,bLoop表示是否要循环播放
virtualunsigned int playEffect(const char* pszFilePath, bool bLoop = false, floatpitch = 1.0f, float pan = 0.0f, float gain = 1.0f); //播放音效,bLoop表示是否要循环播放
virtualvoid stopBackgroundMusic(bool bReleaseData = false); //停止背景音乐
virtualvoid stopEffect(unsigned int nSoundId); //停止指定音效,nSoundId为音效编号
virtualvoid stopAllEffects(); //停止所有音效
使用方法:
SimpleAudioEngine::getInstance()->playBackgroundMusic(MUSIC_FILE,true); //播放背景音乐
SimpleAudioEngine::getInstance()->stopBackgroundMusic();//停止背景音乐
SimpleAudioEngine::getInstance()->stopEffect(_soundId);//停止音效
当游戏进入后台时,或者需要暂停游戏时,通常需要暂停播放音乐,当游戏恢复前台运行时,再继续播放音乐。以下介绍相关用法:
SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); //暂停背景音乐
SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); //恢复背景音乐
SimpleAudioEngine::getInstance()->pauseEffect(_soundId); //暂停编号为_soundId的音效
SimpleAudioEngine::getInstance()->resumeEffect(_soundId); //恢复编号为_soundId的音效
SimpleAudioEngine::getInstance()->pauseAllEffects();//暂停所有音效
SimpleAudioEngine::getInstance()->resumeAllEffects();//恢复所有音效
有了这些方法以后,你就可以在你需要的地方添加音乐或者音效,是的正庚项目更加生动有趣味了。
除了以上介绍的方法外,Cocos2d-x还提供了便捷的控制方法与属性:
(PS:貌似在cocos2dx 3.6中,这几个方法是空的,下次也分享一下怎么把代码补全。)
SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(floatvolume); //设置背景音乐音量
SimpleAudioEngine::getInstance()->setEffectsVolume(floatvolume); //设置音效音量
SimpleAudioEngine::getInstance()->rewindBackgroundMusic();//重新播放背景音乐
SimpleAudioEngine::getInstance()->isBackgroundMusicPlaying();//返回一个值,表示是否在播放背景音乐
打算下一节来讲述一下怎么新建一个控制音效和音乐声音大小的页面,进行对游戏整个音频进行控制。
- 关于cocos2dx的背景音乐和音效(1)
- 关于cocos2dx的背景音乐和音效(2)
- 关于cocos2dx的背景音乐和音效(3)
- 关于win平台下cocos2dx背景音乐及音效的声音调节问题
- cocos2dx播放背景音乐或者音效
- cocos2dx AudioEngine(声音播放)音效播放结束判断测试和背景音乐播放
- 背景音乐和音效
- cocos2dx游戏中添加背景音乐、音效
- Cocos2d-x背景音乐和音效
- 使用cocos2d的SimpleAudioEngine播放背景音乐和音效
- 使用cocos2d的SimpleAudioEngine播放背景音乐和音效
- Cocos2D-x背景音乐和音效的控制方法
- Cocos2d-x初入学堂(15)-->背景音乐和音效
- cocos2d-x SimpleGame(5)如何播放背景音乐和音效
- cocos2d-x学习笔记(6)背景音乐和音效
- Android实现即时音效和背景音乐(整理自用)
- 关于cocos2dx 2.x中的音量和音效设置
- 在cocos2d中加入背景音乐和音效
- 如何查看USB方式连接Android设备的外接设备信息。
- UI基础整理-2
- eclipse maven pom.xml错误
- LIS
- UI基础整理-3
- 关于cocos2dx的背景音乐和音效(1)
- 创业不难 关键在于坚持
- PEP8 Python 编码规范
- java调用.net发布webservice心得
- 华为OJ基础篇-字符串加密
- Swift:自定义UITableViewCell背景色
- css盒模型margin折叠问题解决方案总结
- 关于UITableView的性能优化(历上最全面的优化分析)
- jQuery在web项目中增删改查的应用