在游戏中,音效是一个不可或缺的部分,它可以为我们的游戏增加效果。音效在游戏中一般分为长时间的背景音乐和短促的特效音乐。Cocos2D-x支持多种常见音乐格式(mp3、wav等)。
Cocos2D-x提供了一个非常简单的跨平台声音引擎,它被包含在CocosDenshion库(编译生成libCocosDenshion.lib)中,目录结构如下:
上图可以看出,Cocos2D-x的声音引擎支持多个平台,我们这里使用的是win32平台。
在include目录中有一个SimpleAudioEngine.h,这就是Cocos2D-x声音引擎的定义的头文件,不同的平台需要实现头文件中的接口函数。
下面我们查看SimpleAudioEngine定义了哪些接口,如下:
//定义背景音乐接口
void preloadBackgroundMusic(const char* pszFilePath):预加载背景音乐文件
void playBackgroundMusic(const char* pszFilePath, bool bLoop = false):播放背景音乐
void stopBackgroundMusic(bool bReleaseData = false):停止播放背景音乐
void pauseBackgroundMusic():暂停播放背景音乐
void resumeBackgroundMusic():恢复播放背景音乐
void rewindBackgroundMusic():重新播放背景音乐
bool isBackgroundMusicPlaying():是否在播放背景音乐
void setBackgroundMusicVolume(float volume):设置背景音乐音量大小
//定义特效音乐接口
void preloadEffect(const char* pszFilePath):预加载特效音乐
void unloadEffect(const char* pszFilePath):卸载特效音乐
unsigned int playEffect(const char* pszFilePath, bool bLoop = false):播放特效音乐
void pauseEffect(unsigned int nSoundId):暂停播放指定特效音乐
void pauseAllEffects():暂停播放所有特效音乐
void resumeEffect(unsigned int nSoundId):恢复播放指定特效音乐
void resumeAllEffects():恢复播放所有特效音乐
void stopEffect(unsigned int nSoundId):停止播放指定特效音乐
void stopAllEffects():停止播放所有特效音乐
void setEffectsVolume(float volume):设置特效音乐音量大小
以上可知,SimpleAudioEngine接口的定义确实简单,值得提及的是特效音乐支持多特效播放。 在TestCpp工程的CocosDeshionTest测试项中有音效使用的实例代码,可以进行参考学习。
注:本人在本博客的原创文章采用创作共用版权协议(http://creativecommons.org/licenses/by-nc-sa/2.5/cn/), 要求署名、非商业用途和保持一致。要求署名包含注明我的网名及文章来源(我的博客地址:http://www.cnblogs.com/binbingg)。