Cocos2d-x實例:設置背景音樂與音效- AppDelegate實現

爲了進一步瞭解背景音樂和音效播放的,咱們經過一個實例給你們介紹一下。以下圖所示有兩個場景:HelloWorld和Setting。在HelloWorld場景點擊「遊戲設置」菜單能夠切換到Setting場景,在Setting場景中能夠設置是否播放背景音樂和音效,設置完成後點擊「OK」菜單能夠返回到HelloWorld場景。 

 







咱們須要在AppDelegate中實現背景音樂播放暫停與繼續函數,AppDelegate.h文件代碼以下:
php

[html] view plaincopyhtml

 

  1. #ifndef  _APP_DELEGATE_H_  app

  2. #define  _APP_DELEGATE_H_  函數

  3.   

  4.   

  5. #include "cocos2d.h"  動畫

  6. #include "SimpleAudioEngine.h"                                          ①  網站

  7.   

  8.   

  9. using namespace CocosDenshion;                                          ②  spa

  10. class  AppDelegate : private cocos2d::Application  .net

  11. {  orm

  12. public:  htm

  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技術討論羣:25776038六、327403678

相關文章
相關標籤/搜索