Cocos2d-x学习笔记(十)—— 音频系统(SimpleAudioEngine)

这篇博客介绍了Cocos2d-x游戏引擎中的音频系统,主要探讨如何利用SimpleAudioEngine播放音乐和音效。通过示例代码展示了在C++环境下创建HelloAudio项目,并解释了针对不同大小声音文件的加载策略,以优化运行效率。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值