在游戏中,音效是一个不可或缺的部分,它可以为我们的游戏增加效果。音效在游戏中一般分为长时间的背景音乐和短促的特效音乐。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)。

[原创]cocos2d-x研习录-第三阶 背景音乐和音效的更多相关文章

  1. [原创]cocos2d-x研习录-第三阶 特性之物理引擎

    游戏物理引擎是指在游戏中涉及物理现象的逻辑处理,它用于模拟现实世界的各种物理规律(如赛车碰撞.子弹飞行.物体掉落等),让玩家能够在游戏中有真实的体验. Cocos2D-x中支持Box2D和Chipmu ...

  2. [原创]cocos2d-x研习录-第三阶 特性之粒子系统

    我想接触过游戏引擎的同学,对粒子系统应该不会陌生.它用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题.粒子系统在游戏中有着非常广泛的应用,可以模拟很多现象,如火花.爆炸.烟雾. ...

  3. [原创]cocos2d-x研习录-第三阶 多分辨率适配器

    在移动终端(智能手机)平台下开发游戏一般都会涉及到屏幕多分辨率适配问题,原因是手机款式多种多样,不同的款式存在有不同的尺寸,即使尺寸相同又可能存在不同的分辨率. 手机屏幕尺寸:指手机屏幕对角线长度. ...

  4. [原创]cocos2d-x研习录-第三阶 特性之瓦片地图集

    由于一张大的世界地图或背景图片往往可以由屈指可数的几种地形来表示,每种地形对应于一张小的图片,我们称这些小的地形图片为瓦片.把这些瓦片拼接在一起,组合成一个完整的地图,这就是瓦片地图集的基本原理. C ...

  5. [原创]cocos2d-x研习录-第三阶 特性之调度器

    在游戏中,经常会周期执行一些检测.操作或更新一些数据等,我们称之为调度.Cocos2D-x中将调度封装为类CCScheduler,方便在游戏开发中使用.我们一起来学习一下,CCScheduler具有哪 ...

  6. [原创]cocos2d-x研习录-第三阶 特性之动作

    在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素 ...

  7. [原创]cocos2d-x研习录-第三阶 特性之按键与虚拟键盘

    Cocos2D-x引擎支持按键事件,它能检测设备的键盘输入并处理相应的事件.而基于不同操作系统的移动设备,可供用户操作的按键数量和功能都存在差异.   Cocos2D-x使用CCKeypadDeleg ...

  8. [原创]cocos2d-x研习录-第三阶 特性之加速度传感器

    智能手机的游戏与应用中,也经常会用到加速传感器事件来丰富用户的体验,比如飞翔的企鹅(英文AirPenguin)游戏就是通过加速度传感器来控制角色的移动和跳跃方向.下面学习Cocos2D-x中如何使用加 ...

  9. [原创]cocos2d-x研习录-第三阶 特性之触屏

    游戏跟视频最大的区别就是互动,而手游(基于智能手机)主要靠触摸屏幕.重力传感和虚拟键盘等方式实现互动.这里主要记录Cocos2D-x对玩家触屏操作的处理. 在Cocos2D-x中触屏分为单点触屏和多点 ...

随机推荐

  1. iscroll修改

    近期项目中使用iScroll遇到一个问题,在设定wrapper为横向滚动时,如果你手指放在该区域,将无法拉动页面,也就是说该区域取消了默认事件.这个体验是实在是无法接受,特别是页面中有多个横向滚动区域 ...

  2. android studio 2.2.2下fragment的创建和跳转

    一,首先,Fragment是android应用中十分重要的一个功能,十分轻量化,也类似于activity一样,是一个个布局,可以相互跳转和传递参数.但是,它运行起来十分流畅,而且易于管理,下面是在学习 ...

  3. iOS学习之SKTagView的使用

    SKTagView是一款支持自动布局的标签tag. 特性: -流式展示标签 -可以配置标签的颜色.事件.间隔.外边距等 -支持Auto layout -可以在UITableViewCell中良好展示 ...

  4. MySQL数据库9 - 日期与时间函数

    一 日期和时间函数 函数的概念:按指定格式输入参数,返回正确结果的运算单元 1. 返回当前日期:curdate() current_date() current_date()+0可以将当前日期转换为数 ...

  5. 关于iOS导航控制器隐藏和显示会出现返回键失效,导航栏标题动画异常

    最近做的demo  bug出现了,我觉得这个bug出现得很经典所以贴出来给大家看看, bug演示就是:点击返回键失效出现如下gif图演示的内容 为啥会出现如此奇葩的bug,系统的返回键居然失效了,尴尬 ...

  6. Java—工厂模式

    工厂模式: public interface Cookie { public abstract void run (); } public abstract class CookieFactory { ...

  7. iOS UITextField限制输入数字

    有时候项目中要求文本框中只能输入数字,如:价格.公里数.费用等等,一般的文本框不限制输入的格式,这时候只能强制限制输入框的输入格式了,代码如下: #import "ViewControlle ...

  8. 如何用js定义数组,用js来拼接json字段

    定义js数组的方式有: var arr = (); var arr = []; var arr = new Array(); 如何拼接成一个json字段. <!DOCTYPE HTML PUBL ...

  9. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  10. Quartz定时调度配置

    1.   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 ...