增加战斗画面的暂停功能

This commit is contained in:
ozg
2014-05-23 23:28:11 +08:00
parent f27dd01799
commit 7da0a3906a
10 changed files with 113 additions and 403 deletions
+86
View File
@@ -53,6 +53,20 @@ bool RPGBattleSceneLayer::init()
bg->setTag(kRPGBattleSceneLayerTagBg);
this->addChild(bg);
CCMenu *mainMenu = CCMenu::create();
mainMenu->setTag(kRPGBattleSceneLayerTagMainMenu);
mainMenu->setAnchorPoint(CCPointZero);
mainMenu->setPosition(CCPointZero);
this->addChild(mainMenu);
//暂停按钮
CCMenuItemSprite *menuPause = CCMenuItemSprite::create(CCSprite::createWithSpriteFrameName("commons_btn_pause.png"), CCSprite::createWithSpriteFrameName("commons_btn_pause.png"), this, menu_selector(RPGBattleSceneLayer::onMenu));
menuPause->setTag(kRPGBattleSceneLayerTagMainMenuPause);
menuPause->setPosition(ccp(910, 600));
menuPause->setScale(0.7);
menuPause->setVisible(false);
mainMenu->addChild(menuPause);
//背景音乐
if(SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())
{
@@ -340,6 +354,10 @@ void RPGBattleSceneLayer::update(float delta)
{
float progressSpeed = 1.0;
CCMenu *mainMenu = (CCMenu*)this->getChildByTag(kRPGBattleSceneLayerTagMainMenu);
CCMenuItemSprite *menuPause = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGBattleSceneLayerTagMainMenuPause);
menuPause->setVisible(true);
//更新player进度条
for (int i = 0; i < this->m_playerDataList->count(); i++)
{
@@ -377,6 +395,7 @@ void RPGBattleSceneLayer::update(float delta)
battleMenu->setTag(kRPGBattleSceneLayerTagBattleMenu);
this->addChild(battleMenu);
menuPause->setVisible(false);
this->unscheduleUpdate();
return;
}
@@ -429,6 +448,7 @@ void RPGBattleSceneLayer::update(float delta)
RPGBattlePlayerSprite *targetPlayer = (RPGBattlePlayerSprite*)this->getChildByTag(kRPGBattleSceneLayerTagPlayer + tagetPlayerId);
monster->animAttack(this, targetPlayer->m_data);
menuPause->setVisible(false);
this->unscheduleUpdate();
return;
}
@@ -1461,3 +1481,69 @@ void RPGBattleSceneLayer::showLoseResults()
addLab(loseResults, 5, CCString::create(((CCString*)this->m_stringList->objectForKey("lose_title"))->getCString()), 28, kCCTextAlignmentCenter, ccp(loseResults->getContentSize().width / 2, loseResults->getContentSize().height / 2));
}
void RPGBattleSceneLayer::onMenu(cocos2d::CCObject *pObject)
{
CCMenuItem *menuItem = (CCMenuItem*)pObject;
switch (menuItem->getTag())
{
case kRPGBattleSceneLayerTagMainMenuPause:
{
// CCLog("按了暂停");
SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav");
menuItem->setVisible(false);
//player进入暂停状态
for (int i = 0; i < this->m_playerList->count(); i++)
{
RPGBattlePlayerSprite *player = (RPGBattlePlayerSprite*)this->m_playerList->objectAtIndex(i);
player->pauseSchedulerAndActions();
}
CCLayerColor *pauseMask = CCLayerColor::create(ccc4(0, 0, 0, 180), CCDirector::sharedDirector()->getWinSize().width, CCDirector::sharedDirector()->getWinSize().height);
pauseMask->setTag(kRPGBattleSceneLayerTagPauseMask);
pauseMask->setAnchorPoint(CCPointZero);
pauseMask->setPosition(CCPointZero);
this->addChild(pauseMask);
CCControlButton *btnResume = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("btn_resume"))->getCString(), "Arial", 30);
btnResume->setTag(kRPGBattleSceneLayerTagBtnResume);
btnResume->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width / 2, CCDirector::sharedDirector()->getWinSize().height / 2));
btnResume->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGBattleSceneLayer::onButton), CCControlEventTouchUpInside);
pauseMask->addChild(btnResume);
this->unscheduleUpdate();
}
break;
default:
break;
}
}
void RPGBattleSceneLayer::onButton(cocos2d::CCObject *pSender, CCControlEvent event)
{
CCControlButton *btn = (CCControlButton*)pSender;
switch (btn->getTag())
{
case kRPGBattleSceneLayerTagBtnResume:
{
// CCLog("按了继续");
SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav");
for (int i = 0; i < this->m_playerList->count(); i++)
{
RPGBattlePlayerSprite *player = (RPGBattlePlayerSprite*)this->m_playerList->objectAtIndex(i);
player->resumeSchedulerAndActions();
}
this->removeChildByTag(kRPGBattleSceneLayerTagPauseMask, true);
this->scheduleUpdate();
}
break;
default:
break;
}
}
+7
View File
@@ -21,6 +21,10 @@ enum RPGBattleSceneLayerTag
kRPGBattleSceneLayerTagBg = 1,
kRPGBattleSceneLayerTagMenuBg = 2,
kRPGBattleSceneLayerTagBattleMenu = 3,
kRPGBattleSceneLayerTagMainMenu = 66,
kRPGBattleSceneLayerTagPauseMask = 67,
kRPGBattleSceneLayerTagMainMenuPause = 68,
kRPGBattleSceneLayerTagBtnResume = 69,
kRPGBattleSceneLayerTagWinResultsDialog = 70,
kRPGBattleSceneLayerTagLoseResultsDialog = 71,
kRPGBattleSceneLayerTagSkillSelectDialog = 72,
@@ -78,6 +82,9 @@ private:
void showWinResults(); //显示胜利后获得的经验值和金钱,统计升级也在这里执行
void showLoseResults(); //显示输了的界面
void onMenu(cocos2d::CCObject *pObject);
void onButton(CCObject* pSender, CCControlEvent event);
public:
CCArray* m_existingItems; //已有道具
Executable → Regular
+17 -4
View File
@@ -59,7 +59,7 @@
<key>commons_btn_back_03.png</key>
<dict>
<key>frame</key>
<string>{{188,437},{64,64}}</string>
<string>{{254,371},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@@ -72,7 +72,7 @@
<key>commons_btn_back_04.png</key>
<dict>
<key>frame</key>
<string>{{188,371},{64,64}}</string>
<string>{{188,437},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@@ -85,7 +85,7 @@
<key>commons_btn_back_05.png</key>
<dict>
<key>frame</key>
<string>{{122,420},{64,64}}</string>
<string>{{188,371},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@@ -160,6 +160,19 @@
<key>sourceSize</key>
<string>{32,32}</string>
</dict>
<key>commons_btn_pause.png</key>
<dict>
<key>frame</key>
<string>{{122,420},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{64,64}}</string>
<key>sourceSize</key>
<string>{64,64}</string>
</dict>
<key>gui_battle_progress_bar01_a.png</key>
<dict>
<key>frame</key>
@@ -391,7 +404,7 @@
<key>size</key>
<string>{512,512}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:bc5c1e7831f1dd2a30267cbbc66b73f5:1/1$</string>
<string>$TexturePacker:SmartUpdate:f3e07513133a479d10c9f9a2c2324822:1/1$</string>
<key>textureFileName</key>
<string>main.png</string>
</dict>
Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

+2
View File
@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>btn_resume</key>
<string>继续</string>
<key>skill_title</key>
<string>选择技能</string>
<key>items_title</key>
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

-399
View File
@@ -1,399 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>commons_btn_back_01.png</key>
<dict>
<key>frame</key>
<string>{{122,350},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_back_01_cnt.png</key>
<dict>
<key>frame</key>
<string>{{122,350},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_back_02.png</key>
<dict>
<key>frame</key>
<string>{{122,280},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_back_02_cnt.png</key>
<dict>
<key>frame</key>
<string>{{122,280},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_back_03.png</key>
<dict>
<key>frame</key>
<string>{{188,437},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{64,64}}</string>
<key>sourceSize</key>
<string>{64,64}</string>
</dict>
<key>commons_btn_back_04.png</key>
<dict>
<key>frame</key>
<string>{{188,371},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{64,64}}</string>
<key>sourceSize</key>
<string>{64,64}</string>
</dict>
<key>commons_btn_back_05.png</key>
<dict>
<key>frame</key>
<string>{{122,420},{64,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{64,64}}</string>
<key>sourceSize</key>
<string>{64,64}</string>
</dict>
<key>commons_btn_cancel_01.png</key>
<dict>
<key>frame</key>
<string>{{122,210},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_cancel_01_cnt.png</key>
<dict>
<key>frame</key>
<string>{{122,210},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_cancel_02.png</key>
<dict>
<key>frame</key>
<string>{{122,140},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_cancel_02_cnt.png</key>
<dict>
<key>frame</key>
<string>{{122,140},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>commons_btn_close.png</key>
<dict>
<key>frame</key>
<string>{{421,5},{18,16}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{7,8},{18,16}}</string>
<key>sourceSize</key>
<string>{32,32}</string>
</dict>
<key>gui_battle_progress_bar01_a.png</key>
<dict>
<key>frame</key>
<string>{{41,104},{403,37}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{403,37}}</string>
<key>sourceSize</key>
<string>{403,37}</string>
</dict>
<key>gui_battle_progress_bar01_b.png</key>
<dict>
<key>frame</key>
<string>{{2,104},{403,37}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{403,37}}</string>
<key>sourceSize</key>
<string>{403,37}</string>
</dict>
<key>gui_hand.png</key>
<dict>
<key>frame</key>
<string>{{351,39},{150,116}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{150,116}}</string>
<key>sourceSize</key>
<string>{150,116}</string>
</dict>
<key>gui_separate.png</key>
<dict>
<key>frame</key>
<string>{{504,2},{1,100}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{1,100}}</string>
<key>sourceSize</key>
<string>{1,100}</string>
</dict>
<key>gui_setting_slider.png</key>
<dict>
<key>frame</key>
<string>{{450,2},{52,35}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{52,35}}</string>
<key>sourceSize</key>
<string>{52,35}</string>
</dict>
<key>gui_setting_slider_bg.png</key>
<dict>
<key>frame</key>
<string>{{80,157},{330,40}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{330,40}}</string>
<key>sourceSize</key>
<string>{330,40}</string>
</dict>
<key>gui_window01.png</key>
<dict>
<key>frame</key>
<string>{{2,5},{347,91}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{347,91}}</string>
<key>sourceSize</key>
<string>{347,91}</string>
</dict>
<key>gui_window02.png</key>
<dict>
<key>frame</key>
<string>{{150,98},{271,196}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{271,196}}</string>
<key>sourceSize</key>
<string>{271,196}</string>
</dict>
<key>separate.png</key>
<dict>
<key>frame</key>
<string>{{2,2},{446,1}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{446,1}}</string>
<key>sourceSize</key>
<string>{446,1}</string>
</dict>
<key>settings_btn_default_01.png</key>
<dict>
<key>frame</key>
<string>{{80,119},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>settings_btn_default_01_cnt.png</key>
<dict>
<key>frame</key>
<string>{{80,98},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>settings_btn_default_02.png</key>
<dict>
<key>frame</key>
<string>{{80,489},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>settings_btn_default_02_cnt.png</key>
<dict>
<key>frame</key>
<string>{{351,5},{68,19}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{68,19}}</string>
<key>sourceSize</key>
<string>{68,19}</string>
</dict>
<key>start_btn_left_01.png</key>
<dict>
<key>frame</key>
<string>{{94,140},{14,12}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{1,2},{14,12}}</string>
<key>sourceSize</key>
<string>{16,16}</string>
</dict>
<key>start_btn_left_02.png</key>
<dict>
<key>frame</key>
<string>{{80,140},{14,12}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{1,2},{14,12}}</string>
<key>sourceSize</key>
<string>{16,16}</string>
</dict>
<key>start_btn_right_01.png</key>
<dict>
<key>frame</key>
<string>{{435,23},{14,12}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{1,2},{14,12}}</string>
<key>sourceSize</key>
<string>{16,16}</string>
</dict>
<key>start_btn_right_02.png</key>
<dict>
<key>frame</key>
<string>{{421,23},{14,12}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{1,2},{14,12}}</string>
<key>sourceSize</key>
<string>{16,16}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>realTextureFileName</key>
<string>main.png</string>
<key>size</key>
<string>{512,512}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:bc5c1e7831f1dd2a30267cbbc66b73f5:1/1$</string>
<key>textureFileName</key>
<string>main.png</string>
</dict>
</dict>
</plist>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

+1
View File
@@ -177,6 +177,7 @@
<filename>start_btn_right_01.png</filename>
<filename>start_btn_right_02.png</filename>
<filename>separate.png</filename>
<filename>commons_btn_pause.png</filename>
</array>
<key>ignoreFileList</key>
<array/>