diff --git a/Classes/RPGBaseSceneLayer.h b/Classes/RPGBaseSceneLayer.h index 00a5189..272ee30 100755 --- a/Classes/RPGBaseSceneLayer.h +++ b/Classes/RPGBaseSceneLayer.h @@ -33,6 +33,9 @@ using namespace CocosDenshion; //查询现有道具 #define ITEMS_EXISTING_QUERY "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id order by i.id asc" +//按type查询现有道具 +#define ITEMS_EXISTING_QUERY_TYPE "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id where i.type = %i order by i.id asc" + #define EQUIP_EXISTING_QUERY "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id where i.type = 1 or i.type = 2 order by i.id asc" //获取一个player的详细数据 diff --git a/Classes/RPGBattleMenu.cpp b/Classes/RPGBattleMenu.cpp index 032756a..45a1437 100644 --- a/Classes/RPGBattleMenu.cpp +++ b/Classes/RPGBattleMenu.cpp @@ -29,22 +29,29 @@ RPGBattleMenu::~RPGBattleMenu() if(this->m_parentNode->getChildByTag(kRPGBattleMenuTagSeparate)) this->m_parentNode->removeChildByTag(kRPGBattleMenuTagSeparate, true); + this->m_selectDialogListData->release(); + CCLog("RPGBattleMenu 释放"); } -bool RPGBattleMenu::initWithParentNode(CCDictionary* stringList, CCNode* parentNode, RPGPlayer* playerData) +bool RPGBattleMenu::initWithParentNode(CCDictionary* stringList, CppSQLite3DB* db, CCNode* parentNode, RPGPlayer* playerData) { if(CCMenu::init()) { this->m_stringList = stringList; this->m_stringList->retain(); + this->m_db = db; + this->m_parentNode = parentNode; this->m_parentNode->retain(); this->m_playerData = playerData; this->m_playerData->retain(); + this->m_selectDialogListData = new CCArray(); + this->m_selectDialogListData->init(); + this->setPosition(CCPointZero); CCTMXTiledMap *bgLayer = (CCTMXTiledMap*)this->m_parentNode->getChildByTag(kRPGBattleMenuTagBg); @@ -87,10 +94,10 @@ bool RPGBattleMenu::initWithParentNode(CCDictionary* stringList, CCNode* parentN return false; } -RPGBattleMenu* RPGBattleMenu::createWithParentNode(CCDictionary* stringList, CCNode* parentNode, RPGPlayer* playerData) +RPGBattleMenu* RPGBattleMenu::createWithParentNode(CCDictionary* stringList, CppSQLite3DB* db, CCNode* parentNode, RPGPlayer* playerData) { RPGBattleMenu *obj = new RPGBattleMenu(); - if(obj && obj->initWithParentNode(stringList, parentNode, playerData)) + if(obj && obj->initWithParentNode(stringList, db, parentNode, playerData)) { obj->autorelease(); return obj; @@ -169,19 +176,173 @@ void RPGBattleMenu::onMenu(cocos2d::CCObject *pObject) { CCMenuItem *menuItem = (CCMenuItem*)pObject; SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); - + switch (menuItem->getTag()) { case kRPGBattleMenuTagSkill: { CCLog("技能"); + this->hideMenu(); + + this->m_selectedMenuTag = kRPGBattleMenuTagSkill; + + CCMenuItemSprite *menuCancel = CCMenuItemSprite::create(CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), this, menu_selector(RPGBattleMenu::onMenu)); + menuCancel->setPosition(ccp(75, 660)); + menuCancel->setTag(kRPGBattleMenuTagCancel); + menuCancel->setScale(0.75); + this->addChild(menuCancel); + + CCTMXTiledMap *selectLayer = CCTMXTiledMap::create("battle_select_style1.tmx"); + selectLayer->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - selectLayer->getContentSize().width) / 2, (CCDirector::sharedDirector()->getWinSize().height - selectLayer->getContentSize().height) / 2)); + selectLayer->setTag(kRPGBattleSceneLayerTagSkillSelectDialog); + + ((RPGBattleSceneLayer*)this->m_parentNode)->addChild(selectLayer); + ((RPGBattleSceneLayer*)this->m_parentNode)->enabledTouched(true); + + //显示title和分隔线 + addLab(selectLayer, 199, (CCString*)this->m_stringList->objectForKey("skill_title"), 25, ccp(310, 285)); + CCLabelTTF *titleLab = (CCLabelTTF*)selectLayer->getChildByTag(199); + titleLab->setFontFillColor(ccc3(144, 144, 144)); + + CCSprite *separate = CCSprite::createWithSpriteFrameName("separate.png"); + separate->setPosition(ccp(selectLayer->getContentSize().width / 2, 260)); + separate->setScaleX(0.65); + separate->setTag(198); + selectLayer->addChild(separate); + + //加载技能数据 + CCTableView *tableView = (CCTableView*)selectLayer->getChildByTag(197); + if(!tableView) + { + tableView = CCTableView::create(this, ccp(selectLayer->getContentSize().width, selectLayer->getContentSize().height - 80)); + tableView->setDirection(kCCScrollViewDirectionVertical); + tableView->setPosition(CCSizeZero); + tableView->setDelegate(this); + tableView->setVerticalFillOrder(kCCTableViewFillTopDown); + tableView->setTag(197); + selectLayer->addChild(tableView); + } + this->m_selectDialogListData->removeAllObjects(); + + string wq = ""; + JsonBox::Value json; + json.loadFromString(this->m_playerData->m_skill.c_str()); + JsonBox::Array jsonArr = json.getArray(); + for (int i = 0; i < jsonArr.size(); i++) + { + char* str = (char*)malloc(10 * sizeof(char)); + OzgCCUtility::itoa(jsonArr[i].getInt(), str); + wq.append(str); + + if(i + 1 < jsonArr.size()) + wq.append(", "); + + free(str); + } + if((int)wq.length() > 0) + { + CppSQLite3Query query = this->m_db->execQuery(CCString::createWithFormat(SKILL_QUERY, wq.c_str())->getCString()); + while(!query.eof()) + { + RPGSkillBtnData *skill = RPGSkillBtnData::create(); + skill->m_dataId = query.getIntField("id"); + skill->m_name = query.getStringField("name_cns"); + skill->m_MP = query.getIntField("mp"); + skill->m_skillAttack = query.getIntField("skill_attack"); + skill->m_type = query.getIntField("type"); + skill->m_attr = query.getIntField("attr"); + skill->m_enabled = true; + + //不能使用技能的情况 + if(this->m_playerData->m_MP <= 0 || this->m_playerData->m_HP <= 0) + skill->m_enabled = false; + else if(this->m_playerData->m_MP < skill->m_MP) + skill->m_enabled = false; + else if(skill->m_type != 2) + skill->m_enabled = false; + + this->m_selectDialogListData->addObject(skill); + + query.nextRow(); + } + query.finalize(); + } + tableView->reloadData(); + //加载技能数据 end + } break; case kRPGBattleMenuTagItems: { CCLog("道具"); + this->hideMenu(); + + this->m_selectedMenuTag = kRPGBattleMenuTagItems; + + CCMenuItemSprite *menuCancel = CCMenuItemSprite::create(CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), this, menu_selector(RPGBattleMenu::onMenu)); + menuCancel->setPosition(ccp(75, 660)); + menuCancel->setTag(kRPGBattleMenuTagCancel); + menuCancel->setScale(0.75); + this->addChild(menuCancel); + + CCTMXTiledMap *selectLayer = CCTMXTiledMap::create("battle_select_style1.tmx"); + selectLayer->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - selectLayer->getContentSize().width) / 2, (CCDirector::sharedDirector()->getWinSize().height - selectLayer->getContentSize().height) / 2)); + selectLayer->setTag(kRPGBattleSceneLayerTagItemsSelectDialog); + + ((RPGBattleSceneLayer*)this->m_parentNode)->addChild(selectLayer); + ((RPGBattleSceneLayer*)this->m_parentNode)->enabledTouched(true); + + //显示title和分隔线 + addLab(selectLayer, 199, (CCString*)this->m_stringList->objectForKey("items_title"), 25, ccp(310, 285)); + CCLabelTTF *titleLab = (CCLabelTTF*)selectLayer->getChildByTag(199); + titleLab->setFontFillColor(ccc3(144, 144, 144)); + + CCSprite *separate = CCSprite::createWithSpriteFrameName("separate.png"); + separate->setPosition(ccp(selectLayer->getContentSize().width / 2, 260)); + separate->setScaleX(0.65); + separate->setTag(198); + selectLayer->addChild(separate); + + //加载道具数据 + CCTableView *tableView = (CCTableView*)selectLayer->getChildByTag(197); + if(!tableView) + { + tableView = CCTableView::create(this, ccp(selectLayer->getContentSize().width, selectLayer->getContentSize().height - 80)); + tableView->setDirection(kCCScrollViewDirectionVertical); + tableView->setPosition(CCSizeZero); + tableView->setDelegate(this); + tableView->setVerticalFillOrder(kCCTableViewFillTopDown); + tableView->setTag(197); + selectLayer->addChild(tableView); + } + this->m_selectDialogListData->removeAllObjects(); + + CppSQLite3Query query = this->m_db->execQuery(CCString::createWithFormat(ITEMS_EXISTING_QUERY_TYPE, 3)->getCString()); + while(!query.eof()) + { + RPGExistingItems *itemsData = RPGExistingItems::create(); + itemsData->m_dataId = query.getIntField("id"); + itemsData->m_name = query.getStringField("name_cns"); + itemsData->m_buy = query.getIntField("buy"); + itemsData->m_sell = query.getIntField("sell"); + itemsData->m_type = query.getIntField("type"); + itemsData->m_attack = query.getFloatField("attack"); + itemsData->m_defense = query.getFloatField("defense"); + itemsData->m_speed = query.getFloatField("speed"); + itemsData->m_skillAttack = query.getFloatField("skill_attack"); + itemsData->m_skillDefense = query.getFloatField("skill_defense"); + itemsData->m_total = query.getIntField("total"); + this->m_selectDialogListData->addObject(itemsData); + + query.nextRow(); + } + query.finalize(); + + tableView->reloadData(); + + //加载道具数据 end } break; case kRPGBattleMenuTagEscape: @@ -218,7 +379,7 @@ void RPGBattleMenu::onMenu(cocos2d::CCObject *pObject) break; case kRPGBattleMenuTagCancel: { - CCLog("取消"); +// CCLog("取消"); this->showMenu(); CCMenuItem *menuCancel = (CCMenuItem*)this->getChildByTag(kRPGBattleMenuTagCancel); @@ -227,11 +388,31 @@ void RPGBattleMenu::onMenu(cocos2d::CCObject *pObject) switch (this->m_selectedMenuTag) { case kRPGBattleMenuTagAttack: + CCLog("取消攻击"); ((RPGBattleSceneLayer*)this->m_parentNode)->enabledTouched(false); ((RPGBattleSceneLayer*)this->m_parentNode)->cancelAllSelected(); break; + case kRPGBattleMenuTagSkill: + CCLog("取消技能列表"); + if(((RPGBattleSceneLayer*)this->m_parentNode)->getChildByTag(kRPGBattleSceneLayerTagSkillSelectDialog)) + ((RPGBattleSceneLayer*)this->m_parentNode)->removeChildByTag(kRPGBattleSceneLayerTagSkillSelectDialog, true); + + ((RPGBattleSceneLayer*)this->m_parentNode)->enabledTouched(false); + ((RPGBattleSceneLayer*)this->m_parentNode)->cancelAllSelected(); + + break; + case kRPGBattleMenuTagItems: + CCLog("取消道具列表"); + + if(((RPGBattleSceneLayer*)this->m_parentNode)->getChildByTag(kRPGBattleSceneLayerTagItemsSelectDialog)) + ((RPGBattleSceneLayer*)this->m_parentNode)->removeChildByTag(kRPGBattleSceneLayerTagItemsSelectDialog, true); + + ((RPGBattleSceneLayer*)this->m_parentNode)->enabledTouched(false); + ((RPGBattleSceneLayer*)this->m_parentNode)->cancelAllSelected(); + + break; // default: // break; } @@ -258,3 +439,76 @@ void RPGBattleMenu::onMenu(cocos2d::CCObject *pObject) } } + +void RPGBattleMenu::onButton(cocos2d::CCObject *pSender, CCControlEvent event) +{ + + CCLog("aaaa"); +} + +//CCTableView +void RPGBattleMenu::scrollViewDidScroll(CCScrollView *scrollView) +{ + +} + +void RPGBattleMenu::scrollViewDidZoom(CCScrollView *scrollView) +{ + +} + +void RPGBattleMenu::tableCellTouched(CCTableView *tableView, CCTableViewCell *cell) +{ + +} + +CCSize RPGBattleMenu::cellSizeForTable(CCTableView *tableView) +{ + return CCSizeMake(tableView->getContentSize().width, 50); +} + +CCTableViewCell* RPGBattleMenu::tableCellAtIndex(CCTableView *tableView, unsigned int idx) +{ + CCTableViewCell *cell = tableView->dequeueCell(); + if (!cell) + { + cell = new CCTableViewCell(); + cell->autorelease(); + } + else + cell->removeAllChildrenWithCleanup(true); + + if(dynamic_cast(this->m_selectDialogListData->objectAtIndex(idx)) != NULL) + { + //点击了技能项 + RPGSkillBtnData *itemsData = (RPGSkillBtnData*)this->m_selectDialogListData->objectAtIndex(idx); + + CCControlButton *itemBtn = CCControlButton::create(CCString::createWithFormat("%s (%i)", itemsData->m_name.c_str(), itemsData->m_MP)->getCString(), "Arial", 22); + itemBtn->setPosition(ccp(tableView->getContentSize().width / 2, 0)); + itemBtn->setTag(itemsData->m_dataId); + itemBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGBattleMenu::onButton), CCControlEventTouchUpInside); + cell->addChild(itemBtn); + + } + else if(dynamic_cast(this->m_selectDialogListData->objectAtIndex(idx)) != NULL) + { + //点击了道具项 + + RPGExistingItems *itemsData = (RPGExistingItems*)this->m_selectDialogListData->objectAtIndex(idx); + + CCControlButton *itemBtn = CCControlButton::create(CCString::createWithFormat("%s (%i)", itemsData->m_name.c_str(), itemsData->m_total)->getCString(), "Arial", 22); + itemBtn->setPosition(ccp(tableView->getContentSize().width / 2, 0)); + itemBtn->setTag(itemsData->m_dataId); + itemBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGBattleMenu::onButton), CCControlEventTouchUpInside); + cell->addChild(itemBtn); + + } + + return cell; +} + +unsigned int RPGBattleMenu::numberOfCellsInTableView(CCTableView *tableView) +{ + return this->m_selectDialogListData->count(); +} +//CCTableView end diff --git a/Classes/RPGBattleMenu.h b/Classes/RPGBattleMenu.h index d45520d..4c105d4 100644 --- a/Classes/RPGBattleMenu.h +++ b/Classes/RPGBattleMenu.h @@ -23,21 +23,26 @@ enum RPGBattleMenuTag kRPGBattleMenuTagSkill = 4, kRPGBattleMenuTagItems = 5, kRPGBattleMenuTagEscape = 6, - kRPGBattleMenuTagCancel = 7 - + kRPGBattleMenuTagCancel = 7, + kRPGBattleMenuTagSelect = 8 }; -class RPGBattleMenu : public CCMenu +class RPGBattleMenu : public CCMenu, CCTableViewDelegate, CCTableViewDataSource { private: + CppSQLite3DB* m_db; CCNode* m_parentNode; CCDictionary* m_stringList; + CCArray* m_selectDialogListData; //技能数据或道具数据 + void createMenuItem(float x, float y, CCString *text, RPGBattleMenuTag tag); void onMenu(CCObject *pObject); + void onButton(CCObject* pSender, CCControlEvent event); //技能列表和道具列表的item点击了之后触发 + public: RPGPlayer* m_playerData; @@ -46,12 +51,24 @@ public: RPGBattleMenu(); virtual ~RPGBattleMenu(); - bool initWithParentNode(CCDictionary* stringList, CCNode* parentNode, RPGPlayer* playerData); - static RPGBattleMenu* createWithParentNode(CCDictionary* stringList, CCNode* parentNode, RPGPlayer* playerData); + bool initWithParentNode(CCDictionary* stringList, CppSQLite3DB* db, CCNode* parentNode, RPGPlayer* playerData); + static RPGBattleMenu* createWithParentNode(CCDictionary* stringList, CppSQLite3DB* db, CCNode* parentNode, RPGPlayer* playerData); void showMenu(); //显示战斗菜单 void hideMenu(); //隐藏战斗菜单 + //CCTableViewDelegate继承自CCScrollViewDelegate + virtual void scrollViewDidScroll(CCScrollView* scrollView); + virtual void scrollViewDidZoom(CCScrollView* scrollView); + + //点击哪个cell + virtual void tableCellTouched(CCTableView* tableView, CCTableViewCell* cell); + //每个cell的size + virtual CCSize cellSizeForTable(CCTableView *tableView); + //生成cell + virtual CCTableViewCell* tableCellAtIndex(CCTableView *tableView, unsigned int idx); + //cell的数量 + virtual unsigned int numberOfCellsInTableView(CCTableView *tableView); }; #endif /* defined(__OzgGameRPG__RPGBattleMenu__) */ diff --git a/Classes/RPGBattlePlayerSprite.cpp b/Classes/RPGBattlePlayerSprite.cpp index c8eb605..592523e 100644 --- a/Classes/RPGBattlePlayerSprite.cpp +++ b/Classes/RPGBattlePlayerSprite.cpp @@ -280,6 +280,11 @@ void RPGBattlePlayerSprite::animAttack(CCObject* target, cocos2d::CCObject *targ this->runAction(CCSequence::createWithTwoActions(CCAnimate::create(animation), CCCallFuncND::create(target, callfuncND_selector(RPGBattleSceneLayer::attackResults), (void*)targetObjData))); } +void RPGBattlePlayerSprite::animSkill(cocos2d::CCObject *target, cocos2d::CCObject *targetObjData) +{ + CCLog("使用技能"); +} + void RPGBattlePlayerSprite::showEffectResults(cocos2d::CCObject *target, int HPResults, CCNode* srcAttackObj) { //srcAttackObj为发起攻击的Sprite对象 diff --git a/Classes/RPGBattlePlayerSprite.h b/Classes/RPGBattlePlayerSprite.h index 2fd11c1..d6f7fec 100644 --- a/Classes/RPGBattlePlayerSprite.h +++ b/Classes/RPGBattlePlayerSprite.h @@ -64,6 +64,8 @@ public: void animAttack(CCObject* target, CCObject *targetObjData); //执行一般攻击的动作,target为回调对象,targetObjData为攻击的对象 + void animSkill(CCObject* target, CCObject *targetObjData); //执行技能,target为回调对象,targetObjData为目标对象 + void showEffectResults(CCObject* target, int HPResults, CCNode* srcAttackObj); //显示效果值,target为回调对象,攻击的话HPResults传入的是负值,回复的话为正值 }; diff --git a/Classes/RPGBattleSceneLayer.cpp b/Classes/RPGBattleSceneLayer.cpp index d43b517..44819ce 100755 --- a/Classes/RPGBattleSceneLayer.cpp +++ b/Classes/RPGBattleSceneLayer.cpp @@ -307,7 +307,8 @@ CCScene* RPGBattleSceneLayer::scene() void RPGBattleSceneLayer::update(float delta) { - float progressSpeed = 0.5; + float progressSpeed = 5; //test +// float progressSpeed = 0.5; //更新player进度条 for (int i = 0; i < this->m_playerDataList->count(); i++) @@ -342,7 +343,7 @@ void RPGBattleSceneLayer::update(float delta) if(battleMenu) battleMenu->removeFromParentAndCleanup(true); - battleMenu = RPGBattleMenu::createWithParentNode(this->m_stringList, this, playerData); + battleMenu = RPGBattleMenu::createWithParentNode(this->m_stringList, &this->m_db, this, playerData); battleMenu->setTag(kRPGBattleSceneLayerTagBattleMenu); this->addChild(battleMenu); @@ -434,14 +435,14 @@ void RPGBattleSceneLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) { // CCLog("攻击"); - SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); - //检测选中的player for (int i = 0; i < this->m_playerList->count(); i++) { RPGBattlePlayerSprite *player = (RPGBattlePlayerSprite*)this->m_playerList->objectAtIndex(i); if(player->boundingBox().containsPoint(point)) { + SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); + if(player->m_isSelected) { CCLog("攻击player"); @@ -468,6 +469,8 @@ void RPGBattleSceneLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) RPGBattleMonsterSprite *monster = (RPGBattleMonsterSprite*)this->m_monsterList->objectAtIndex(i); if(monster->boundingBox().containsPoint(point)) { + SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); + if(monster->m_isSelected) { CCLog("攻击怪物"); @@ -492,6 +495,16 @@ void RPGBattleSceneLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) } break; + case kRPGBattleMenuTagSkill: + + CCLog("a"); + break; + + case kRPGBattleMenuTagItems: + + CCLog("b"); + break; + // default: // break; } @@ -1043,7 +1056,7 @@ bool RPGBattleSceneLayer::judgeLose() void RPGBattleSceneLayer::showWinResults() { - CCTMXTiledMap *winResults = CCTMXTiledMap::create("battle_battle_style1.tmx"); + CCTMXTiledMap *winResults = CCTMXTiledMap::create("battle_select_style1.tmx"); winResults->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - winResults->getContentSize().width) / 2, (CCDirector::sharedDirector()->getWinSize().height - winResults->getContentSize().height) / 2)); winResults->setTag(kRPGBattleSceneLayerTagWinResultsDialog); this->addChild(winResults); @@ -1165,7 +1178,7 @@ void RPGBattleSceneLayer::showWinResults() void RPGBattleSceneLayer::showLoseResults() { - CCTMXTiledMap *loseResults = CCTMXTiledMap::create("battle_battle_style1.tmx"); + CCTMXTiledMap *loseResults = CCTMXTiledMap::create("battle_select_style1.tmx"); loseResults->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - loseResults->getContentSize().width) / 2, (CCDirector::sharedDirector()->getWinSize().height - loseResults->getContentSize().height) / 2)); loseResults->setTag(kRPGBattleSceneLayerTagLoseResultsDialog); this->addChild(loseResults); diff --git a/Classes/RPGBattleSceneLayer.h b/Classes/RPGBattleSceneLayer.h index bac18e7..c4ab565 100755 --- a/Classes/RPGBattleSceneLayer.h +++ b/Classes/RPGBattleSceneLayer.h @@ -23,6 +23,8 @@ enum RPGBattleSceneLayerTag kRPGBattleSceneLayerTagBattleMenu = 3, kRPGBattleSceneLayerTagWinResultsDialog = 70, kRPGBattleSceneLayerTagLoseResultsDialog = 71, + kRPGBattleSceneLayerTagSkillSelectDialog = 72, + kRPGBattleSceneLayerTagItemsSelectDialog = 73, kRPGBattleSceneLayerTagMsg = 98, kRPGBattleSceneLayerTagPlayer = 100, kRPGBattleSceneLayerTagPlayerNameLab = 200, diff --git a/Classes/RPGData.cpp b/Classes/RPGData.cpp index 7efcaa3..609bc4a 100644 --- a/Classes/RPGData.cpp +++ b/Classes/RPGData.cpp @@ -83,6 +83,20 @@ RPGSkill* RPGSkill::create() //RPGSkill end +RPGSkillBtnData* RPGSkillBtnData::create() +{ + RPGSkillBtnData *obj = new RPGSkillBtnData(); + if(obj) + { + obj->autorelease(); + return obj; + } + CC_SAFE_DELETE(obj); + return NULL; +} + +//RPGSkillBtnData end + RPGItems::RPGItems() { diff --git a/Classes/RPGData.h b/Classes/RPGData.h index 8d98fc6..c6a3806 100644 --- a/Classes/RPGData.h +++ b/Classes/RPGData.h @@ -104,6 +104,18 @@ public: static RPGSkill* create(); }; +//这个用于在战斗的选择技能列表、地图的技能菜单用到 +class RPGSkillBtnData : public RPGSkill +{ + +public: + + bool m_enabled; //是否可点击 + + static RPGSkillBtnData* create(); + +}; + class RPGItems : public CCObject { diff --git a/Classes/RPGMapSkillMenuLayer.cpp b/Classes/RPGMapSkillMenuLayer.cpp index 0d209a8..0ea90ff 100644 --- a/Classes/RPGMapSkillMenuLayer.cpp +++ b/Classes/RPGMapSkillMenuLayer.cpp @@ -12,31 +12,6 @@ #include "RPGMapChoicePlayerMenuLayer.h" #include "OzgCCUtility.h" -//RPGSkillBtnData -class RPGSkillBtnData : public RPGSkill -{ - -public: - - bool m_enabled; //是否可点击 - - static RPGSkillBtnData* create(); - -}; - -RPGSkillBtnData* RPGSkillBtnData::create() -{ - RPGSkillBtnData *obj = new RPGSkillBtnData(); - if(obj) - { - obj->autorelease(); - return obj; - } - CC_SAFE_DELETE(obj); - return NULL; -} -//RPGSkillBtnData end - RPGMapSkillMenuLayer::RPGMapSkillMenuLayer() { diff --git a/Resources/battle_battle_style1.tmx b/Resources/battle_select_style1.tmx similarity index 100% rename from Resources/battle_battle_style1.tmx rename to Resources/battle_select_style1.tmx diff --git a/Resources/scene_battle_cns.plist b/Resources/scene_battle_cns.plist index 4ccf8b5..e41ad5a 100755 --- a/Resources/scene_battle_cns.plist +++ b/Resources/scene_battle_cns.plist @@ -2,6 +2,10 @@ + skill_title + 选择技能 + items_title + 选择道具 escape_success 逃跑成功 escape_fail diff --git a/proj.ios/OzgGameRPG.xcodeproj/project.pbxproj b/proj.ios/OzgGameRPG.xcodeproj/project.pbxproj index c9dd8c8..451be9e 100644 --- a/proj.ios/OzgGameRPG.xcodeproj/project.pbxproj +++ b/proj.ios/OzgGameRPG.xcodeproj/project.pbxproj @@ -229,7 +229,7 @@ 890F1B651902E284002F2769 /* attack30.png in Resources */ = {isa = PBXBuildFile; fileRef = 890F1B591902E284002F2769 /* attack30.png */; }; 890F1B661902E284002F2769 /* attack40.plist in Resources */ = {isa = PBXBuildFile; fileRef = 890F1B5A1902E284002F2769 /* attack40.plist */; }; 890F1B671902E284002F2769 /* attack40.png in Resources */ = {isa = PBXBuildFile; fileRef = 890F1B5B1902E284002F2769 /* attack40.png */; }; - 891DEB7819054276005337E5 /* battle_battle_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 891DEB7719054276005337E5 /* battle_battle_style1.tmx */; }; + 891DEB7819054276005337E5 /* battle_select_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 891DEB7719054276005337E5 /* battle_select_style1.tmx */; }; 8936C3B518F6D72100AE709E /* select_player_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 8936C3B418F6D72100AE709E /* select_player_style1.tmx */; }; 893D34D41906B01100BFE2C5 /* attack_damage.plist in Resources */ = {isa = PBXBuildFile; fileRef = 893D34D21906B01100BFE2C5 /* attack_damage.plist */; }; 893D34D51906B01100BFE2C5 /* attack_damage.png in Resources */ = {isa = PBXBuildFile; fileRef = 893D34D31906B01100BFE2C5 /* attack_damage.png */; }; @@ -855,7 +855,7 @@ 890F1B591902E284002F2769 /* attack30.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = attack30.png; sourceTree = ""; }; 890F1B5A1902E284002F2769 /* attack40.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = attack40.plist; sourceTree = ""; }; 890F1B5B1902E284002F2769 /* attack40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = attack40.png; sourceTree = ""; }; - 891DEB7719054276005337E5 /* battle_battle_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = battle_battle_style1.tmx; sourceTree = ""; }; + 891DEB7719054276005337E5 /* battle_select_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = battle_select_style1.tmx; sourceTree = ""; }; 8936C3B418F6D72100AE709E /* select_player_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = select_player_style1.tmx; sourceTree = ""; }; 893D34D21906B01100BFE2C5 /* attack_damage.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = attack_damage.plist; sourceTree = ""; }; 893D34D31906B01100BFE2C5 /* attack_damage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = attack_damage.png; sourceTree = ""; }; @@ -2451,7 +2451,7 @@ 896BAEE418EF04CF006581FD /* audio_battle_menu.wav */, 896BAEE518EF04CF006581FD /* audio_battle_start.wav */, 9E5C5F6D18EE59BB00A68C36 /* battle_menu_style1.tmx */, - 891DEB7719054276005337E5 /* battle_battle_style1.tmx */, + 891DEB7719054276005337E5 /* battle_select_style1.tmx */, 8999051C18F17E6C00012A0E /* battle_battlemenu_style1.tmx */, 89EA57C018EAF2CB00A10956 /* battle_bg.png */, 89EA57BC18EAF1EC00A10956 /* monsters.plist */, @@ -2606,7 +2606,7 @@ 89F5D14B18E7C5DD009D703C /* scene_start_cns.plist in Resources */, 896BAEE618EF04CF006581FD /* audio_battle_end.mp3 in Resources */, 89F5D10E18E7C5C0009D703C /* actor7_3.png in Resources */, - 891DEB7819054276005337E5 /* battle_battle_style1.tmx in Resources */, + 891DEB7819054276005337E5 /* battle_select_style1.tmx in Resources */, 89CB7D8818E9A87700A5921B /* dialog_style1.tmx in Resources */, 89F5D11B18E7C5C0009D703C /* actor113.png in Resources */, 89F5D14C18E7C5DD009D703C /* start_bg.png in Resources */, 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 5f003ea..f669720 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