SimpleAudioEngine是cocos2d-x中的声音引擎,它控制着在游戏中的声音。
而且它是一个全局静态类,至始至终只会有一个且全局能访问。
话不多说我们来介绍一下吧
要使用SimpleAudioEngine引擎当然得手动添加头文件啦
#include "simpleAudioEngine.h"
using namespace CocosDenshion;
因为它是一个单例模式设计的所以使用getinstance。
CocosDenshion::SimpleAudioEngine::getInstance()->preloadBackgroundMusic("music/bgm.mp3");//预加载音乐
BackGroundMusic是bgm也就是背景音乐的意思,preload是预加载的意思。
预加载的好处是,先加载文件,在后面用到时速度比读取要快很多,在大型游戏开发中预加载的优势会比直接读取要快很多。
预加载之后就可以随心所欲的用啦!
CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("music/bgm.mp3");
//开始播放音乐
CocosDenshion::SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
//暂停bgm音乐
CocosDenshion::SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
//继续bgm音乐
当然暂停和继续是基于开始播放了bgm音乐的,所以无需文件路径。
还有一些别的方法
virtual void rewindBackgroundMusic() //重新播放背景音乐。
virtual bool willPlayBackgroundMusic() //判断背景音乐是否可以播放。
virtual bool isBackgroundMusicPlaying() //判断背景音乐是否在播放。
virtual float getBackgroundMusicVolume() //获取背景音乐音量。
virtual void setBackgroundMusicVolume(float volume) //设置背景音乐音量,值域[0.0f,1.0f]。
在游戏当中我们按下某个按钮的时候也会有音效,攻击也会有音效,当然
SimpleAudioEngine也有控制音效的啦!
virtual float getEffectsVolume() //获取即时音效的音量。
virtual void setEffectsVolume(float volume) //设置即时音效的音量,值域[0.0f,1.0f]。
virtual void preloadEffect(const char* pszFilePath) //预加载音效,参数是文件路径。
virtual void unloadEffect(const char* pszFilePath) //卸载音效。
virtual unsigned int playEffect(const char* pszFilePath,bool bLoop=false,float pitch=1.0f,float pan=0.0f,float gain=1.0f) //播放即时音效,参数一是文件路径,参数二表示是否循环,参数三表示基因频率,参数四表示左右声道是否均衡,值域[-1,1],参数五表示音量衰减系数,值域[0.1]。
virtual void pauseEffect(unsigned int nSoundid) //暂停播放即时音效,参数为编号。
virtual void resumeEffect(unsigned int nSoundid) //继续播放即时音效,参数为编号。
virtual void stopEffect(unsigned int nSoundid) //停止播放即时音效,参数为编号。
virtual void pauseAllEffect() //暂停播放所有音效。
virtual void resumeAllEffect() //继续播放所有音效。
virtual void stopAllEffect() //停止播放所有音效