文档章节

Cocos2d-x实例:设置背景音乐与音效- AppDelegate实现

智捷课堂
 智捷课堂
发布于 2014/08/05 19:27
字数 462
阅读 42
收藏 0

为了进一步了解背景音乐和音效播放的,我们通过一个实例给大家介绍一下。如下图所示有两个场景:HelloWorld和Setting。在HelloWorld场景点击“游戏设置”菜单可以切换到Setting场景,在Setting场景中可以设置是否播放背景音乐和音效,设置完成后点击“OK”菜单可以返回到HelloWorld场景。 

 







我们需要在AppDelegate中实现背景音乐播放暂停与继续函数,AppDelegate.h文件代码如下:

[html] view plaincopy

 

  1. #ifndef  _APP_DELEGATE_H_  

  2. #define  _APP_DELEGATE_H_  

  3.   

  4.   

  5. #include "cocos2d.h"  

  6. #include "SimpleAudioEngine.h"                                          ①  

  7.   

  8.   

  9. using namespace CocosDenshion;                                          ②  

  10. class  AppDelegate : private cocos2d::Application  

  11. {  

  12. public:  

  13.     AppDelegate();  

  14.     virtual ~AppDelegate();  

  15.   

  16.   

  17.     virtual bool applicationDidFinishLaunching();  

  18.     virtual void applicationDidEnterBackground();  

  19.     virtual void applicationWillEnterForeground();  

  20. };  

  21.   

  22.   

  23. #endif // _APP_DELEGATE_H_  



上述代码第①行是引入头文件SimpleAudioEngine.h,它是SimpleAudioEngine所需要的。第②行代码using namespace CocosDenshion是使用命名空间CocosDenshion,它是CocosDenshion引擎所需要的。

[html] view plaincopy

 

  1. #include "AppDelegate.h"  

  2. #include "HelloWorldScene.h"  

  3.   

  4.   

  5. USING_NS_CC;  

  6.   

  7.   

  8. AppDelegate::AppDelegate() {  

  9.   

  10.   

  11. }  

  12.   

  13.   

  14. AppDelegate::~AppDelegate()   

  15. {  

  16. }  

  17.   

  18.   

  19. bool AppDelegate::applicationDidFinishLaunching() {                             ①  

  20. … …  

  21.     // run  

  22.     director->runWithScene(scene);  

  23.       

  24.     //初始化 背景音乐  

  25.     SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/Jazz.mp3");      ②  

  26.     SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/Synth.mp3");     ③  

  27.     //初始化 音效  

  28.     SimpleAudioEngine::getInstance()->preloadEffect("sound/Blip.wav");                   ④  

  29.   

  30.   

  31.     return true;  

  32. }  

  33.   

  34.   

  35. void AppDelegate::applicationDidEnterBackground() {                             ⑤  

  36.     Director::getInstance()->stopAnimation();  

  37.   

  38.   

  39.     SimpleAudioEngine::getInstance()->pauseBackgroundMusic();                    ⑥  

  40. }  

  41.   

  42.   

  43. void AppDelegate::applicationWillEnterForeground() {                                ⑦  

  44.     Director::getInstance()->startAnimation();  

  45.   

  46.   

  47.     SimpleAudioEngine::getInstance()->resumeBackgroundMusic();                   ⑧  

  48. }  



我们在上述代码第①行是声明applicationDidFinishLaunching()函数,这个函数是在游戏启动时候调用。第②~④行代码是初始化背景音乐和音效文件。

第⑤行代码是声明applicationDidEnterBackground()是游戏进入到后天时候调用函数,在这个函数中需要停止动画和暂停背景音乐播放。第⑦行代码是声明applicationWillEnterForeground()是游戏从后天回到前台时候调用,在这个函数中需要继续动画和背景音乐播放。

 

 

更多内容请关注Cocos2d-x系列图书《Cocos2d-x实战(卷Ⅰ):C++开发》

本书交流讨论网站:http://www.cocoagame.net

欢迎加入cocos2d-x技术讨论群:257760386、327403678


© 著作权归作者所有

智捷课堂

智捷课堂

粉丝 40
博文 239
码字总数 215495
作品 0
东城
私信 提问
Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件的预处理

Cocos2d-x提供了一个音频CocosDenshion引擎,CocosDenshion引擎可以独立于Cocos2d-x单独使用,CocosDenshion引擎本质上封装了OpenAL音频处理库。 具体使用的API是SimpleAudioEngine。SimpleA...

智捷课堂
2014/08/04
76
0
Cocos2d-x实例:设置背景音乐与音效-设置场景实现

设置场景(Setting),Setting.h文件代码如下: [html] view plaincopy #ifndef SettingSCENEH #define SettingSCENEH #include "cocos2d.h" #include "SimpleAudioEngine.h" class Setting ......

智捷课堂
2014/08/05
94
0
实例介绍Cocos2d-x开关菜单

开关菜单是MenuItemToggle类实现的,它是一种可以进行两种状态切换的菜单。它可以通过下面的函数创建: [html] view plaincopy static MenuItemToggle*createWithCallback ( const ccMenuCal...

智捷课堂
2014/05/13
1K
0
Cocos2d-JS使用CocosDenshion引擎

Cocos2d-JS提供了一个音频CocosDenshion引擎。具体使用的API是cc.AudioEngine。cc.AudioEngine有几个常用的函数: playMusic(url, loop)。播放背景音乐,参数url是播放文件的路径,参数loop控...

智捷课堂
2015/04/06
326
0
Cocos2d-x使用UserDefault数据持久化实例:保存背景音乐和音效设置

UserDefault可以实现数据的存储,但是它的使用不能泛滥,具体讲一般情况下不会使用它保存大量的数据,它没有SQL语句那样的灵活。UserDefault除了保存游戏设置外,还有可以长期保持游戏精灵等...

智捷课堂
2014/10/20
100
0

没有更多内容

加载失败,请刷新页面

加载更多

手机视频如何制作GIF动图

很多小伙伴都喜欢用GIF动图在各大社交软件上与好友斗图,那你知道这些好玩有趣的GIF动图是如何制作的吗?下面教你一个将手机视频制作成GIF动图的方法,让你都可以随时随地制作有趣的表情包,...

白米稀饭2019
25分钟前
4
0
Spring Security 实战干货:实现自定义退出登录

1. 前言 上一篇对 Spring Security 所有内置的 Filter 进行了介绍。今天我们来实战如何安全退出应用程序。 2. 我们使用 Spring Security 登录后都做了什么 这个问题我们必须搞清楚!一般登录...

码农小胖哥
今天
10
0
JVM核心知识-类加载机制

JVM中类的生命周期包括7个阶段,加载、准备、验证、解析、初始化、使用、卸载。其中准备、验证、解析被归为连接阶段。 加载 jvm在这个阶段完成的工作 通过类名获取类的二进制字节流 将这个字...

moon888
今天
8
0
.net工作流引擎ccflow流程结束相关功能的介绍

关键字: 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 表单引擎 工作流功能说明 工作流设计 工作流快速开发平台 业务流程管理 bpm工作流系统 java工作流主流框架 自定义...

孟娟
今天
8
0
APP 值入轻量级钱包以太坊网络钱包

APP 值入轻量级钱包以太坊网络钱包

xiaodong16
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部