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


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

     








    我们须要在AppDelegate中实现背景音乐播放暂停与继续函数,AppDelegate.h文件代码例如以下:
    #ifndef  _APP_DELEGATE_H_
    #define  _APP_DELEGATE_H_
    
    
    #include "cocos2d.h"
    #include "SimpleAudioEngine.h"											①
    
    
    using namespace CocosDenshion;											②
    class  AppDelegate : private cocos2d::Application
    {
    public:
        AppDelegate();
        virtual ~AppDelegate();
    
    
        virtual bool applicationDidFinishLaunching();
        virtual void applicationDidEnterBackground();
        virtual void applicationWillEnterForeground();
    };
    
    
    #endif // _APP_DELEGATE_H_


    上述代码第①行是引入头文件SimpleAudioEngine.h,它是SimpleAudioEngine所须要的。第②行代码using namespace CocosDenshion是使用命名空间CocosDenshion,它是CocosDenshion引擎所须要的。
    #include "AppDelegate.h"
    #include "HelloWorldScene.h"
    
    
    USING_NS_CC;
    
    
    AppDelegate::AppDelegate() {
    
    
    }
    
    
    AppDelegate::~AppDelegate() 
    {
    }
    
    
    bool AppDelegate::applicationDidFinishLaunching() {								①
    … …
        // run
        director->runWithScene(scene);
    	
    	//初始化 背景音乐
    	SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/Jazz.mp3");		②
    	SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/Synth.mp3");		③
    	//初始化 音效
    	SimpleAudioEngine::getInstance()->preloadEffect("sound/Blip.wav");					④
    
    
        return true;
    }
    
    
    void AppDelegate::applicationDidEnterBackground() {								⑤
        Director::getInstance()->stopAnimation();
    
    
        SimpleAudioEngine::getInstance()->pauseBackgroundMusic();					⑥
    }
    
    
    void AppDelegate::applicationWillEnterForeground() {								⑦
        Director::getInstance()->startAnimation();
    
    
        SimpleAudioEngine::getInstance()->resumeBackgroundMusic();					⑧
    }


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

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


    很多其它内容请关注Cocos2d-x系列图书《Cocos2d-x实战(卷Ⅰ):C++开发》
    本书交流讨论站点:http://www.cocoagame.net
    欢迎增加cocos2d-x技术讨论群:257760386、327403678

  • 相关阅读:
    采集智能电表
    未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\.....dll”“拒绝访问。
    随笔写写jquery
    随便写写,,
    写写Ajaxpro
    C# 给程序加日志功能。
    Oracle_Database_11g_标准版_企业版__下载地址_详细列表
    通过C#发送自定义的html格式邮件
    C# 加密解密链接字符串
    获取本地 有线 正在使用的网卡信息
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3982550.html
Copyright © 2020-2023  润新知