diff --git a/Classes/AppDelegate.cpp b/Classes/AppDelegate.cpp
index 1147b44..81cde32 100755
--- a/Classes/AppDelegate.cpp
+++ b/Classes/AppDelegate.cpp
@@ -79,6 +79,10 @@ bool AppDelegate::applicationDidFinishLaunching()
query.finalize();
db.close();
+ //初始化背景音乐和效果音的默认大小值
+ SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(CCUserDefault::sharedUserDefault()->getFloatForKey(GAME_BG_AUDIO_VOLUME, 1.0));
+ SimpleAudioEngine::sharedEngine()->setEffectsVolume(CCUserDefault::sharedUserDefault()->getFloatForKey(GAME_EFFECT_AUDIO_VOLUME, 1.0));
+
CCScene *mainScene = RPGStartSceneLayer::scene();
pDirector->runWithScene(mainScene);
diff --git a/Classes/GameCfg.h b/Classes/GameCfg.h
index b9847e1..2199c06 100755
--- a/Classes/GameCfg.h
+++ b/Classes/GameCfg.h
@@ -27,4 +27,7 @@
#define MAX_STATUS1 9999 //HP最大值
#define MAX_STATUS2 999 //MP、攻击力、防御力、速度、技能攻击、技能防御的最大值
+#define GAME_BG_AUDIO_VOLUME "GAME_BG_AUDIO_VOLUME" //背景音乐大小
+#define GAME_EFFECT_AUDIO_VOLUME "GAME_EFFECT_AUDIO_VOLUME" //效果音大小
+
#endif
diff --git a/Classes/RPGStartSceneLayer.cpp b/Classes/RPGStartSceneLayer.cpp
index 17f0f63..d2a1e31 100755
--- a/Classes/RPGStartSceneLayer.cpp
+++ b/Classes/RPGStartSceneLayer.cpp
@@ -115,6 +115,8 @@ void RPGStartSceneLayer::onMenu(cocos2d::CCObject *pObject)
this->removeChildByTag(kRPGStartSceneLayerTagSettingsMenu, true);
this->removeChildByTag(kRPGStartSceneLayerTagLabStyle, true);
this->removeChildByTag(kRPGStartSceneLayerTagLabCurrStyle, true);
+ this->removeChildByTag(kRPGStartSceneLayerTagLabBgAudio, true);
+ this->removeChildByTag(kRPGStartSceneLayerTagLabEffectAudio, true);
this->showMainMenu();
}
@@ -136,6 +138,19 @@ void RPGStartSceneLayer::onMenu(cocos2d::CCObject *pObject)
//更新当前样式
CCUserDefault::sharedUserDefault()->setStringForKey(GAME_STYLE, saveDataObj->m_windowStyle);
+
+ CCMenu *settingsMenu = (CCMenu*)this->getChildByTag(kRPGStartSceneLayerTagSettingsMenu);
+
+ //还原背景音乐
+ CCUserDefault::sharedUserDefault()->setFloatForKey(GAME_BG_AUDIO_VOLUME, 1.0);
+ ((CCMenuItemLabel*)settingsMenu->getChildByTag(kRPGStartSceneLayerTagSettingsBgAudioBtn))->setString(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_off"))->getCString()).c_str());
+ SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(1);
+
+ //还原效果声音
+ CCUserDefault::sharedUserDefault()->setFloatForKey(GAME_EFFECT_AUDIO_VOLUME, 1.0);
+ ((CCMenuItemLabel*)settingsMenu->getChildByTag(kRPGStartSceneLayerTagSettingsEffectAudioBtn))->setString(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_off"))->getCString()).c_str());
+ SimpleAudioEngine::sharedEngine()->setEffectsVolume(1);
+
}
break;
case kRPGStartSceneLayerTagSettingsStyleLeft:
@@ -181,6 +196,49 @@ void RPGStartSceneLayer::onMenu(cocos2d::CCObject *pObject)
CCUserDefault::sharedUserDefault()->setStringForKey(GAME_STYLE, saveDataObj->m_windowStyle);
}
break;
+ case kRPGStartSceneLayerTagSettingsBgAudioBtn:
+ {
+ //点击了背景音乐的开关
+ SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav");
+
+ if(CCUserDefault::sharedUserDefault()->getFloatForKey(GAME_BG_AUDIO_VOLUME, 1.0) == 0)
+ {
+ CCUserDefault::sharedUserDefault()->setFloatForKey(GAME_BG_AUDIO_VOLUME, 1.0);
+
+ ((CCMenuItemLabel*)menuItem)->setString(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_off"))->getCString()).c_str());
+ SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(1);
+ }
+ else
+ {
+ CCUserDefault::sharedUserDefault()->setFloatForKey(GAME_BG_AUDIO_VOLUME, 0);
+
+ ((CCMenuItemLabel*)menuItem)->setString(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_on"))->getCString()).c_str());
+ SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0);
+ }
+
+ }
+ break;
+ case kRPGStartSceneLayerTagSettingsEffectAudioBtn:
+ {
+ //点击了效果声音的开关
+ SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav");
+
+ if(CCUserDefault::sharedUserDefault()->getFloatForKey(GAME_EFFECT_AUDIO_VOLUME, 1.0) == 0)
+ {
+ CCUserDefault::sharedUserDefault()->setFloatForKey(GAME_EFFECT_AUDIO_VOLUME, 1.0);
+
+ ((CCMenuItemLabel*)menuItem)->setString(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_off"))->getCString()).c_str());
+ SimpleAudioEngine::sharedEngine()->setEffectsVolume(1);
+ }
+ else
+ {
+ CCUserDefault::sharedUserDefault()->setFloatForKey(GAME_EFFECT_AUDIO_VOLUME, 0);
+
+ ((CCMenuItemLabel*)menuItem)->setString(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_on"))->getCString()).c_str());
+ SimpleAudioEngine::sharedEngine()->setEffectsVolume(0);
+ }
+ }
+ break;
default:
{
//开始游戏
@@ -312,6 +370,44 @@ void RPGStartSceneLayer::showSettingsMenu()
this->addChild(labCurrStyleLabel);
}
+ //背景音乐的开关
+ CCString *labBgAudioStr = (CCString*)this->m_stringList->objectForKey("settingsmenu_bgaudio");
+ CCLabelTTF *labBgAudioLabel = CCLabelTTF::create(OzgCCUtility::generalString(labBgAudioStr->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentLeft, kCCVerticalTextAlignmentCenter);
+ labBgAudioLabel->setFontFillColor(ccc3(188, 188, 188));
+ labBgAudioLabel->setTag(kRPGStartSceneLayerTagLabBgAudio);
+ labBgAudioLabel->setPosition(ccp(300, 470));
+ this->addChild(labBgAudioLabel);
+
+ //背景音乐的开关的按钮
+ CCLabelTTF *labBgAudioBtnLabel = NULL;
+ if(CCUserDefault::sharedUserDefault()->getFloatForKey(GAME_BG_AUDIO_VOLUME, 1.0) == 0)
+ labBgAudioBtnLabel = CCLabelTTF::create(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_on"))->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
+ else
+ labBgAudioBtnLabel = CCLabelTTF::create(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_off"))->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
+ CCMenuItemLabel *labBgAudioBtn = CCMenuItemLabel::create(labBgAudioBtnLabel, this, menu_selector(RPGStartSceneLayer::onMenu));
+ labBgAudioBtn->setPosition(ccp(550, 470));
+ labBgAudioBtn->setTag(kRPGStartSceneLayerTagSettingsBgAudioBtn);
+ settingsMenu->addChild(labBgAudioBtn);
+
+ //效果声音的开关
+ CCString *labEffectAudioStr = (CCString*)this->m_stringList->objectForKey("settingsmenu_effectaudio");
+ CCLabelTTF *labEffectAudioLabel = CCLabelTTF::create(OzgCCUtility::generalString(labEffectAudioStr->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentLeft, kCCVerticalTextAlignmentCenter);
+ labEffectAudioLabel->setFontFillColor(ccc3(188, 188, 188));
+ labEffectAudioLabel->setTag(kRPGStartSceneLayerTagLabEffectAudio);
+ labEffectAudioLabel->setPosition(ccp(300, 390));
+ this->addChild(labEffectAudioLabel);
+
+ //效果声音的开关的按钮
+ CCLabelTTF *labEffectAudioBtnLabel = NULL;
+ if(CCUserDefault::sharedUserDefault()->getFloatForKey(GAME_EFFECT_AUDIO_VOLUME, 1.0) == 0)
+ labEffectAudioBtnLabel = CCLabelTTF::create(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_on"))->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
+ else
+ labEffectAudioBtnLabel = CCLabelTTF::create(OzgCCUtility::generalString(((CCString*)this->m_stringList->objectForKey("settingsmenu_audio_off"))->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
+ CCMenuItemLabel *labEffectAudioBtn = CCMenuItemLabel::create(labEffectAudioBtnLabel, this, menu_selector(RPGStartSceneLayer::onMenu));
+ labEffectAudioBtn->setPosition(ccp(550, 390));
+ labEffectAudioBtn->setTag(kRPGStartSceneLayerTagSettingsEffectAudioBtn);
+ settingsMenu->addChild(labEffectAudioBtn);
+
//恢复默认
CCString *menuRestoreStr = (CCString*)this->m_stringList->objectForKey("settingsmenu_restore");
CCLabelTTF *menuRestoreLabel = CCLabelTTF::create(OzgCCUtility::generalString(menuRestoreStr->getCString()).c_str(), "FZCuYuan-M03S", 28, CCSizeMake(120, 40), kCCTextAlignmentLeft, kCCVerticalTextAlignmentCenter);
diff --git a/Classes/RPGStartSceneLayer.h b/Classes/RPGStartSceneLayer.h
index 942ae9a..ef22044 100755
--- a/Classes/RPGStartSceneLayer.h
+++ b/Classes/RPGStartSceneLayer.h
@@ -25,10 +25,15 @@ enum RPGStartSceneLayerTag
kRPGStartSceneLayerTagSettingsMenu = 8,
kRPGStartSceneLayerTagSettingsStyleLeft = 10,
kRPGStartSceneLayerTagSettingsStyleRight = 12,
+ kRPGStartSceneLayerTagSettingsBgAudioBtn = 18,
+ kRPGStartSceneLayerTagSettingsEffectAudioBtn = 19,
kRPGStartSceneLayerTagSettingsRestore = 14,
kRPGStartSceneLayerTagSettingsBack = 13,
kRPGStartSceneLayerTagLabStyle = 11,
- kRPGStartSceneLayerTagLabCurrStyle = 15
+ kRPGStartSceneLayerTagLabCurrStyle = 15,
+ kRPGStartSceneLayerTagLabBgAudio = 16,
+ kRPGStartSceneLayerTagLabEffectAudio = 17
+
};
class RPGStartSceneLayer : public RPGBaseSceneLayer
diff --git a/Resources/scene_start_cns.plist b/Resources/scene_start_cns.plist
index f6f2aff..b80d2f9 100755
--- a/Resources/scene_start_cns.plist
+++ b/Resources/scene_start_cns.plist
@@ -16,9 +16,17 @@
游戏设置
settingslab_style
选择样式
+ settingsmenu_bgaudio
+ 背景音乐
+ settingsmenu_effectaudio
+ 效果声音
settingsmenu_restore
恢复默认
settingsmenu_back
返回
+ settingsmenu_audio_on
+ 开
+ settingsmenu_audio_off
+ 关
diff --git a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/ouzhigang.xcuserdatad/UserInterfaceState.xcuserstate b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/ouzhigang.xcuserdatad/UserInterfaceState.xcuserstate
index 52ed4a0..ae7c84a 100644
Binary files a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/ouzhigang.xcuserdatad/UserInterfaceState.xcuserstate and b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/ouzhigang.xcuserdatad/UserInterfaceState.xcuserstate differ