咱们须要在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