zoukankan      html  css  js  c++  java
  • Cocos2d-x实例:设置背景音乐与音效- AppDelegate实现

    为了进一步了解背景音乐和音效播放的,我们通过一个实例给大家介绍一下。如下图所示有两个场景: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
  • 相关阅读:
    16
    15
    14
    13
    12
    11
    10
    python包管理器修改镜像地址
    Linux环境下安装hadoop分布式集群+问题总结
    解剖css中的clear属性
  • 原文地址:https://www.cnblogs.com/iOS-Blog/p/3893019.html
Copyright © 2011-2022 走看看