Cocos2d音频系统主要用于播放游戏中的声音文件,由于声音文件的大小可分为音乐和音效两种。其中,音乐一般为游戏中的背景音乐,一般比较长,而音效一般是短暂的声音,比如爆炸的声音等,根据不同的大小,我们使用不同的方法加载音效,以提高运行效率。
直接上代码,新建HelloAudio项目:
HelloAudio.h:
#ifndef __HELLOAUDIO_H__
#define __HELLOAUDIO_H__
#include "cocos2d.h"
#include "SimpleAudioEngine.h"
#include "Box2D\Box2D.h"
using namespace cocos2d;
using namespace CocosDenshion;
class HelloAudio : public cocos2d::Layer
{
private:
// 菜单
Menu* _menu;
// 菜单项数
int m_count;
// 鼠标点击时的坐标
CCPoint m_BeginPos;
// 声音ID
int sound_Id;
public:
static cocos2d::Scene* createMusicScene();
virtual bool init();
void menuMusicCallBack(Ref* pSender);
CREATE_FUNC(HelloAudio);
void onTouchesBegan(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
void onTouchesMoved(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
virtual void onExit();
};
#endif // !__HELLOAUDIO_H__
HelloAudio.cpp:
#include "HelloAudio.h"
USING_NS_CC;
// 定义Label的行间隔
#define LineSize 35
Scene* HelloAudio::createMusicScene()
{
auto musicScene = Scene::create();
auto musicLayer = HelloAudio::create();
musicScene->addChild(musicLayer);
return musicScene;
}
bool HelloAudio::init()
{
if (!La