咱們須要在AppDelegate中實現背景音樂播放暫停與繼續函數,AppDelegate.h文件代碼以下:
php
[html] view plaincopyhtml
#ifndef _APP_DELEGATE_H_ app
#define _APP_DELEGATE_H_ 函數
#include "cocos2d.h" 動畫
#include "SimpleAudioEngine.h" ① 網站
using namespace CocosDenshion; ② spa
class AppDelegate : private cocos2d::Application .net
{ orm
public: htm
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技術討論羣:25776038六、327403678