【cocos2d-x游戏开发】背景音乐与音效

在游戏中,我们把音乐文件分为两类。一是背景音乐,二是音效。比如说,进入一个场景之中,会有背景音乐的声音,主角是做出动作时,会有音效的产生等等呐。。

然而背景音乐和音效音乐是不大相同的,一般来说,背景音乐是很长的,然而音效却是很短暂的,只有短短的几秒而已。所以说,背景音乐只能播放一首,然而,音效却可以同时播放多个,相信大家在玩游戏时也有所体会。

在cocos2d-x3.x中,我们可以十分方便的调用CocosDenshion音效引擎库。我们需要加载音频文件时,只需要把相关的头文件写进来就可以了。

#include "SimpleAudioEngine.h" 

下面要说一下,这个库所支持的音频文件了。

Android:mp3、mid、ogg和wav了。这些格式的区别可以去度娘查看。

IOS:aac、caf、MP3、m4a和wav。

Windows:mid、MP3和wav。

SimpleAudioEngine和许多Cocos2d的部件一样,是一个单例类。我们可以使用下面的代码来访它的实例:

SimpleAudioEngine::shareEngine();

加载音乐和音效文件通常来说是一个比较耗时的任务。为了防止由加载文件而产生的延迟导致实际播放与游戏不协调的现象发生,在播放音效和背景音乐之前,需要预加载音乐文件。通常,我们会在进入游戏场景前的载入阶段调用下面的这个方法。

void preloadEffect(const char* pszFilePath):用于预加载音效文件,其中pszFilePath为音效文件所在的目录位置。
void preloadBackgroundMusic(const char* pszFilePath):用于预加载背景音乐,其中pszFilePath为音乐文件所在的目录位置。  

播放与停止:

音频引擎提供了非常方便的播放与暂停音乐音效的接口,使用起来非常方便的。API如下:

unsigned int playEffect(const char* pszFilePath, bool bLoop = false)

播放音效。和预加载的方法相同,前一个参数为路径,后一个为是否循环播放,默认为false,即只能播放一次。一般来说,音效不需要循环播放,而背景音乐却需要循环播放

。如下:

SimpleAudioEngine::sharedEngine()->playEffect("coin.wav", false);

另外,playEffect函数会返回一个无符号整形数,是此次音效播放的唯一标示。可用来暂停该音效。

void playBackgroundMusic(const char* pszFilePath, bool bLoop = false);

播放背景音乐,参数和前面的是一样的,这里不多说了。

void stopEffect(unsigned int nSoundId);

停止播放指定的音效,里面的参数,就是返回的那个音效标示。

void stopAllEffects();停止播放所有音效。

void stopBackgroundMusic();停止播放背景音乐。

暂停和恢复:

当游戏进入后台时,通常暂停音乐;当游戏返回到前台时,再继续播放音乐。

void pauseBackgroundMusic();

暂停播放背景音乐。暂停之后可以利用恢复播放音乐的方法来继续播放。

void pauseEffect(unsigned int nSoundId);

暂停播放指定的音效,里面的参数就是将要被暂停的音效的唯一标示。

 void pauseAllEffects();暂停所有播放中的音效。
<span style="font-family: Arial, Helvetica, sans-serif;">void resumeBackgroundMusic();</span>

恢复播放背景音乐,在游戏重新进入前台时调用此方法。我们可以在AppDelegate提供的事件处理函数中调用此方法来恢复被暂停的音乐。

void resumeEffect(unsigned int nSoundId);

来恢复某一个被暂停的音效,里面的参数为该音效的唯一标示。

void rewindBackgroundMusic();重新播放背景音乐。
bool isBackgroundMusicPlaying():返回一个布尔类型的值,表示是否正在播放背景音乐。
void unloadEffect(const char*pszFilePath):卸载已预载入的音效文件,以释放系统资源。

当不再使用某个资源时,可以调用此方法来卸载该资源,但是如果要再次用该资源时,需要重新加载此资源,需要耗费大量的时间。

float EffectsVolume属性:获取或设置音效的音量大小,其取值为0.0到1.0之间的浮点数。注意,对此属性的设置会影响到所有音效的音量大小。
 float BackgroundMusicVolume属性:获取或设置背景音乐的音量大小,其取值为0.0到1.0之间的浮点数。与EffectsVolume属性类似,对此属性的设置也会影响到所有背景音乐的音量大小。
void end():当不再使用音频引擎时,调用此方法来释放SimpleAudioEngine所占用的资源。  
时间: 2024-10-15 12:21:26

【cocos2d-x游戏开发】背景音乐与音效的相关文章

Swift - 给游戏添加背景音乐和音效(SpriteKit游戏开发)

游戏少不了背景音乐和音效.下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效. 声音管理类 SoundManager.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import SpriteKit //引入多媒体框架 import AVFoundation class SoundManager :SKNode{     //申明一个播放器

【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)

在一款游戏中,除了华丽的界面 UI 直接吸引玩家外,另外重要的就是游戏的背景音乐与音效:合适的背景音乐以及精彩的音效搭配会令整个游戏上升一个档次. 在 Android 中.常用于播放游戏背景音乐的类是 MediaPlayer, 而用于游戏音效的则是 SoundPool 类. 1. MediaPlayer MediaPlayer 实例化不是 new 出来的,而是通过调用静态方法得到的,这里有几种静态方法: create(Context context, Uri uri) 作用:通过Uri创建一个多

史上最全最完整的IOS 游戏开发 PDF电子书定制下载

<iOS 5游戏开发>作者:(新西兰)James·Sugrue著 页数:191 出版社:北京市:人民邮电出版社 出版日期:2012.08 简介:<iOS5游戏开发>是一本iOS5游戏开发的基础入门书.全书使用通俗易懂的简单实例,带领读者经历构建经典动作游戏的整个周期.读者在本书的阅读过程中,将经历从开发概念.规划设计一直到编写实际代码的全过过程.本书的每一章,都将演示游戏创建过程中的一个逻辑步骤,读者将在其中学习如何创建Sprite,用触摸屏.重力感应器和屏幕游戏棒控制玩家角色等-

22、Cocos2dx 3.0游戏开发找小三之音乐与音效:假如世界上没有了音乐,你的耳朵会孤单吗?

重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30485103 假如世界上没有了音乐,在森林里.我们听不到莺.鸫鸟用纯洁.纯净的的声音唱歌.听不到甲虫和蚱蜢拉提琴的声音:听不到小河哗哗啦啦地演奏:也听不到落叶沙沙地歌唱--森林无论如何郁郁葱葱,如何漂亮也只是仅仅是空荡和孤独. 假如世界上没有了音乐,人们将无法听到莫扎特.贝多芬等音乐天才创作的那些动听的乐曲:人们将不能看到花儿乐队活力四射的表演:音乐

cocos2d-x ios游戏开发初认识(八) 音效、粒子系统与存储

我们知道,一个游戏少不了声音,一些好听的声音会提起你对游戏的兴趣,当然做好听的声音不是我们要学的,我们的目的是把声音在适当的时候放出来,顺便在这节中会说下简单的粒子系统和文件存储. 一.声音的播放: 1.新建一个cocos2d工程添加相应的声音图片资源: 播放声音所用到的内容: 代码: 这里可以先在RootViewController.mm里面设置屏幕 禁止旋转 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientat

Cocos2d-JS 中游戏背景音乐与音效

游戏中音频的处理也是非常重要的,它分为背景音乐播放与音效播放. 背景音乐是长时间循环播放的,它会长时间占用较大的内存,背景音乐不能多个同时播放. 而音效是短的声音,它占用内存较小,音效能多个同时播放. 在Cocos2d-JS中提供了一个音频引擎-AudioEngine,通过引擎能够很好地控制游戏背景音乐与音效优化播放. Cocos2d-JS音频文件 音频多媒体文件主要是存放音频数据信息,音频文件在录制的过程中把声音信号通过音频编码变成音频数字信号保存到某种格式文件中.在播放过程中再对音频文件解码

cocos2d 游戏开发实战

文章转自:http://uliweb.clkg.org/tutorial/read/40 6   cocos2d 游戏开发实战 6.1   创建cocos2d项目 6.2   cocos2d v3 "hello world" 6.2.1   显示一个飞船 6.3   精灵 6.4   開始 space viking 之旅 6.4.1   添加 sneakyinput 6.5   精灵的移动效果,旋转效果 6.6   定时器效果 6.7   启动 cocos2d,默认竖屏 6.8   检

[ios5 cocos2d游戏开发实战] 笔记3-FileUtils, notificationCenter

FileUtils //文件管理工具 FileUtils::getInstance() std::string getStringFromFile(const std::string& filename);//读取文件中的字符串 Data getDataFromFile(const std::string& filename);//获取文件数据 void setSearchPaths(const std::vector<std::string>& searchPaths

使用 Cocos2d 3.1.1 创建 Windows Phone 8 游戏开发环境

cocos2d-x 是目前流行的游戏游戏开发框架,目前最新的版本是 3.1.1, 网上有些教程已经比较老了,本文将会介绍如何使用最新的 3.1.1 创建 Windows Phone 8 开发环境. 本文假设你已经安装了 VS2012 或者 VS2013,并且已经安装了 Windows Phone8 的 SDK. 一.下载和安装 Cocos2d-x 官网地址:http://www.cocos2d-x.org/ 点击菜单栏中的 Download, 进入下载页面. 我们下载最新的 V3.1.1,新版功