在上一节中实现了悔棋,在这节将介绍如何在游戏中添加背景音乐
看一下效果:
实现思路:
当单击后游戏中播放背景音乐,并且背景音乐切换按钮由变成
当单击后停止播放背景音乐,并且背景音乐切换按钮由变成
当游戏进入后台后停止播放背景音乐
当游戏恢复后继续播放背景音乐
实现代码:
在SceneGame类中定义一个成员函数Voice(CCObject*)用于实现背景音乐的切换,Voice(CCObject*)中的代码
//播放背景音乐
void SceneGame::Voice(CCObject*)
{
static int i = 0;
if(0 == i)
{
//播放背景音乐
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("floor.wav",true);
//显示停止播放背景音乐按钮
itemCloseVoice->setVisible(true);
i++;
}
else
{
//停止播放背景音乐
CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
//隐藏停止播放背景音乐按钮
itemCloseVoice->setVisible(false);
i--;
}
}
将AppDelegate.cpp下的函数void AppDelegate::applicationDidEnterBackground() 中的代码
// This function will be called when the app is inactive. When comes a phone call,it's be invoked too
void AppDelegate::applicationDidEnterBackground() {
CCDirector::sharedDirector()->stopAnimation();
// if you use SimpleAudioEngine, it must be pause
//SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
改成(去掉代码前的注释)
// This function will be called when the app is inactive. When comes a phone call,it's be invoked too
void AppDelegate::applicationDidEnterBackground() {
CCDirector::sharedDirector()->stopAnimation();
// if you use SimpleAudioEngine, it must be pause
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
将AppDelegate.cpp下的函数void AppDelegate::AppDelegate::applicationWillEnterForeground() 中的代码
// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground() {
CCDirector::sharedDirector()->startAnimation();
// if you use SimpleAudioEngine, it must resume here
// SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
改成(去掉代码前的注释)
// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground() {
CCDirector::sharedDirector()->startAnimation();
// if you use SimpleAudioEngine, it must resume here
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();