標籤:blog http 使用 os io strong 檔案 for
為了進一步瞭解背景音樂和音效播放的,我們通過一個執行個體給大家介紹一下。如所示有兩個情境:HelloWorld和Setting。在HelloWorld情境點擊“遊戲設定”菜單可以切換到Setting情境,在Setting情境中可以設定是否播放背景音樂和音效,設定完成後點擊“OK”菜單可以返回到HelloWorld情境。
我們需要在AppDelegate中實現背景音樂播放暫停與繼續函數,AppDelegate.h檔案代碼如下:
[html] view plaincopy
- #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引擎所需要的。
[html] view plaincopy
- #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