diff --git a/Classes/RPGBaseSceneLayer.cpp b/Classes/RPGBaseSceneLayer.cpp index 5cfbede..bc3050f 100755 --- a/Classes/RPGBaseSceneLayer.cpp +++ b/Classes/RPGBaseSceneLayer.cpp @@ -26,10 +26,27 @@ void addLab(CCNode* parentNode, int tag, CCString* text, float fontSize, CCTextA parentNode->addChild(textLab); } -void saveData(CppSQLite3DB* db, int mapId, float toX, float toY, string playerDirection) +void saveData(CppSQLite3DB* db, RPGSaveData *saveData) { - db->execDML(CCString::createWithFormat("update save_data set map_id = %i, player_to_x = %f, player_to_y = %f, player_direction = '%s' where id = 1", mapId, toX, toY, playerDirection.c_str())->getCString()); + db->execDML(CCString::createWithFormat("update save_data set map_id = %i, player_to_x = %f, player_to_y = %f, player_direction = '%s', gold = %i where id = 1", saveData->m_mapId, saveData->m_playerToX, saveData->m_playerToY, saveData->m_playerDirection.c_str(), saveData->m_gold)->getCString()); +} + +RPGSaveData* loadSaveData(CppSQLite3DB* db) +{ + RPGSaveData *saveDataObj = RPGSaveData::create(); + CppSQLite3Query query = db->execQuery(SAVEDATA_QUERY); + + saveDataObj->m_dataId = query.getIntField("id"); + saveDataObj->m_mapId = query.getIntField("map_id"); + saveDataObj->m_playerToX = query.getFloatField("player_to_x"); + saveDataObj->m_playerToY = query.getFloatField("player_to_y"); + saveDataObj->m_playerDirection = query.getStringField("player_direction"); + saveDataObj->m_gold = query.getIntField("gold"); + + query.finalize(); + + return saveDataObj; } void savePlayerData(CppSQLite3DB* db, CCArray* playerDataList) diff --git a/Classes/RPGBaseSceneLayer.h b/Classes/RPGBaseSceneLayer.h index 4f94f5d..00a5189 100755 --- a/Classes/RPGBaseSceneLayer.h +++ b/Classes/RPGBaseSceneLayer.h @@ -56,7 +56,8 @@ void addLab(CCNode* parentNode, int tag, CCString* text, CCPoint point); //增 void addLab(CCNode* parentNode, int tag, CCString* text, float fontSize, CCPoint point); void addLab(CCNode* parentNode, int tag, CCString* text, float fontSize, CCTextAlignment textAlignment, CCPoint point); -void saveData(CppSQLite3DB* db, int mapId, float toX, float toY, string playerDirection); +void saveData(CppSQLite3DB* db, RPGSaveData *saveData); +RPGSaveData* loadSaveData(CppSQLite3DB* db); void savePlayerData(CppSQLite3DB* db, CCArray* playerDataList); class RPGBaseSceneLayer : public CCLayer diff --git a/Classes/RPGBattleMonsterSprite.cpp b/Classes/RPGBattleMonsterSprite.cpp index 5efa6a8..9b03521 100644 --- a/Classes/RPGBattleMonsterSprite.cpp +++ b/Classes/RPGBattleMonsterSprite.cpp @@ -90,6 +90,19 @@ void RPGBattleMonsterSprite::showEffectResults(cocos2d::CCObject *target, int HP } +void RPGBattleMonsterSprite::animAttack(CCObject* target, CCObject *targetObjData) +{ + this->stopAllActions(); + + SimpleAudioEngine::sharedEngine()->playEffect("audio_battle_attack1.wav"); + + CCActionInterval *tint = CCTintBy::create(0.3, -255, -255, -255); + CCActionInterval *tintBack = tint->reverse(); + + this->runAction(CCSequence::createWithTwoActions(CCSequence::createWithTwoActions(tint, tintBack), CCCallFuncND::create(target, callfuncND_selector(RPGBattleSceneLayer::attackResults), (void*)targetObjData))); + +} + //private void RPGBattleMonsterSprite::showEffectResultsEnd() { diff --git a/Classes/RPGBattleMonsterSprite.h b/Classes/RPGBattleMonsterSprite.h index d924a22..6c2bedc 100644 --- a/Classes/RPGBattleMonsterSprite.h +++ b/Classes/RPGBattleMonsterSprite.h @@ -11,6 +11,7 @@ #include "cocos2d.h" #include "RPGData.h" +#include "RPGBattlePlayerSprite.h" USING_NS_CC; using namespace std; @@ -30,7 +31,7 @@ private: int m_HPResults; //临时保存HP效果值 void showEffectResultsEnd(); //showEffectResults执行完毕后执行,然后再执行showEffectResults参数中的回调 - + public: bool m_isSelected; @@ -46,6 +47,8 @@ public: void showEffectResults(CCObject* target, int HPResults, CCNode* player); //显示效果值,target为回调对象,攻击的话HPResults传入的是负值,回复的话为正值 + void animAttack(CCObject* target, CCObject *targetObjData); //执行一般攻击或技能攻击的动作,target为回调对象,targetObjData为攻击的对象 + }; #endif /* defined(__OzgGameRPG__RPGBattleMonsterSprite__) */ diff --git a/Classes/RPGBattlePlayerSprite.cpp b/Classes/RPGBattlePlayerSprite.cpp index 75d1fb5..e8a0f54 100644 --- a/Classes/RPGBattlePlayerSprite.cpp +++ b/Classes/RPGBattlePlayerSprite.cpp @@ -230,6 +230,18 @@ void RPGBattlePlayerSprite::animWin() this->runAction(animate); } +void RPGBattlePlayerSprite::animHurt() +{ + this->stopAllActions(); + + if(this->getChildByTag(kRPGBattlePlayerSpriteTagArm)) + this->removeChildByTag(kRPGBattlePlayerSpriteTagArm, true); + + CCAnimation *animation = CCAnimation::createWithSpriteFrames(this->m_spriteFramesHurt, 0.2); + CCSequence *animate = CCSequence::create(CCAnimate::create(animation), CCDelayTime::create(1.5), CCCallFunc::create(this, callfunc_selector(RPGBattlePlayerSprite::animNormal)), NULL); + this->runAction(animate); +} + void RPGBattlePlayerSprite::animAttack(CCObject* target, cocos2d::CCObject *targetObjData) { this->stopAllActions(); @@ -267,8 +279,10 @@ 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::showEffectResults(cocos2d::CCObject *target, int HPResults, CCNode* player) +void RPGBattlePlayerSprite::showEffectResults(cocos2d::CCObject *target, int HPResults, CCNode* srcAttackObj) { + //srcAttackObj为发起攻击的Sprite对象 + addLab(this, kRPGBattlePlayerSpriteTagEffectResults, CCString::createWithFormat("%i", HPResults), 24, kCCTextAlignmentCenter, ccp(this->getContentSize().width / 2, this->getContentSize().height / 2)); CCLabelTTF *effectResults = (CCLabelTTF*)this->getChildByTag(kRPGBattlePlayerSpriteTagEffectResults); @@ -282,7 +296,7 @@ void RPGBattlePlayerSprite::showEffectResults(cocos2d::CCObject *target, int HPR this->m_HPResults = HPResults; - effectResults->runAction(CCSequence::create(CCEaseExponentialOut::create(up), CCEaseBounceOut::create(down), CCDelayTime::create(0.5), CCCallFunc::create(this, callfunc_selector(RPGBattlePlayerSprite::showEffectResultsEnd)), CCCallFuncND::create(target, callfuncND_selector(RPGBattleSceneLayer::attackWithTargetEffectLabEnd), player), NULL)); + effectResults->runAction(CCSequence::create(CCEaseExponentialOut::create(up), CCEaseBounceOut::create(down), CCDelayTime::create(0.5), CCCallFunc::create(this, callfunc_selector(RPGBattlePlayerSprite::showEffectResultsEnd)), CCCallFuncND::create(target, callfuncND_selector(RPGBattleSceneLayer::attackWithTargetEffectLabEnd), srcAttackObj), NULL)); } diff --git a/Classes/RPGBattlePlayerSprite.h b/Classes/RPGBattlePlayerSprite.h index 7970e32..2fd11c1 100644 --- a/Classes/RPGBattlePlayerSprite.h +++ b/Classes/RPGBattlePlayerSprite.h @@ -60,10 +60,11 @@ public: void animDying(); //执行临死的状态 void animDeath(); //执行战斗不能的状态 void animWin(); //执行胜利的状态 + void animHurt(); //执行受到攻击的状态,执行一次完毕后回到通常时状态,执行animNormal() - void animAttack(CCObject* target, CCObject *targetObjData); //执行一般攻击的动作,target为回调对象 + void animAttack(CCObject* target, CCObject *targetObjData); //执行一般攻击的动作,target为回调对象,targetObjData为攻击的对象 - void showEffectResults(CCObject* target, int HPResults, CCNode* player); //显示效果值,target为回调对象,攻击的话HPResults传入的是负值,回复的话为正值 + void showEffectResults(CCObject* target, int HPResults, CCNode* srcAttackObj); //显示效果值,target为回调对象,攻击的话HPResults传入的是负值,回复的话为正值 }; diff --git a/Classes/RPGBattleSceneLayer.cpp b/Classes/RPGBattleSceneLayer.cpp index 4df8dde..d43b517 100755 --- a/Classes/RPGBattleSceneLayer.cpp +++ b/Classes/RPGBattleSceneLayer.cpp @@ -359,7 +359,12 @@ void RPGBattleSceneLayer::update(float delta) for (int j = 0; j < monsters->count(); j++) { RPGMonster *monsterData = (RPGMonster*)monsters->objectAtIndex(j); -// RPGBattleMonsterSprite *monster = (RPGBattleMonsterSprite*)this->getChildByTag(monsterData->m_tag); + + //对于已被打倒的怪物,则跳过进度条的处理 + if(monsterData->m_status == kRPGDataStatusDeath) + continue; + + RPGBattleMonsterSprite *monster = (RPGBattleMonsterSprite*)this->getChildByTag(monsterData->m_tag); monsterData->m_progress += progressSpeed; @@ -370,6 +375,29 @@ void RPGBattleSceneLayer::update(float delta) { CCLog("怪物攻击"); + //计算攻击哪个player + + //先确定哪个player不在战斗不能状态 + vector playerIdList; + for (int i = 0; i < this->m_playerList->count(); i++) + { + RPGBattlePlayerSprite *player = (RPGBattlePlayerSprite*)this->m_playerList->objectAtIndex(i); + + if(player->m_data->m_status != kRPGDataStatusDeath) + playerIdList.push_back(player->m_data->m_dataId); + } + + int randIndex = 0; + if(playerIdList.size() > 1) + randIndex = OzgCCUtility::rangeRand(0, (int)playerIdList.size() - 1); + + int tagetPlayerId = playerIdList[randIndex]; + + //计算攻击哪个player 完毕 + + RPGBattlePlayerSprite *targetPlayer = (RPGBattlePlayerSprite*)this->getChildByTag(kRPGBattleSceneLayerTagPlayer + tagetPlayerId); + monster->animAttack(this, targetPlayer->m_data); + this->unscheduleUpdate(); return; } @@ -474,24 +502,20 @@ void RPGBattleSceneLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) //保存获得的金钱到数据库 { - CCString *sql = NULL; + this->m_totalGold = CCUserDefault::sharedUserDefault()->getIntegerForKey("gold") + this->m_totalGold; - CppSQLite3Query query = this->m_db.execQuery(CCString::create(SAVEDATA_QUERY)->getCString()); - while(!query.eof()) - { - this->m_totalGold = query.getIntField("gold") + this->m_totalGold; - - //最大值的处理 - if(this->m_totalGold > MAX_GOLD) - this->m_totalGold = MAX_GOLD; - - sql = CCString::createWithFormat(SAVE_GOLD, this->m_totalGold); - - query.nextRow(); - } - query.finalize(); + //最大值的处理 + if(this->m_totalGold > MAX_GOLD) + this->m_totalGold = MAX_GOLD; - if(sql) this->m_db.execDML(sql->getCString()); + RPGSaveData *saveDataObj = RPGSaveData::create(); + saveDataObj->m_mapId = CCUserDefault::sharedUserDefault()->getIntegerForKey("map_id"); + saveDataObj->m_playerToX = CCUserDefault::sharedUserDefault()->getFloatForKey("player_to_x"); + saveDataObj->m_playerToY = CCUserDefault::sharedUserDefault()->getFloatForKey("player_to_y"); + saveDataObj->m_playerDirection = CCUserDefault::sharedUserDefault()->getStringForKey("player_direction"); + saveDataObj->m_gold = this->m_totalGold; + + saveData(&this->m_db, saveDataObj); } //保存player的状态到数据库 @@ -532,9 +556,10 @@ void RPGBattleSceneLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) CCTextureCache::sharedTextureCache()->removeTextureForKey(CCString::createWithFormat("%s_3.png", playerData->m_texPrefix.c_str())->getCString()); } - CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo(); +// CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo(); - SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true); + if(SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) + SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true); SimpleAudioEngine::sharedEngine()->playBackgroundMusic("audio_start.mp3", true); CCScene *s = RPGStartSceneLayer::scene(); CCTransitionFade *t = CCTransitionFade::create(GAME_SCENE, s); @@ -683,6 +708,8 @@ void RPGBattleSceneLayer::attack(cocos2d::CCObject *attackObjData, cocos2d::CCOb void RPGBattleSceneLayer::attackResults(cocos2d::CCNode *sender, void *data) { + //sender为发起攻击的Sprite对象,data为被攻击的对象 + SimpleAudioEngine::sharedEngine()->playEffect("audio_battle_attack2.wav"); // CCLog("计算伤害值"); @@ -706,18 +733,27 @@ void RPGBattleSceneLayer::attackResults(cocos2d::CCNode *sender, void *data) { //player攻击player RPGBattlePlayerSprite *targetPlayer = (RPGBattlePlayerSprite*)this->getChildByTag(kRPGBattleSceneLayerTagPlayer + ((RPGPlayer*)data)->m_dataId); + targetPlayer->animHurt(); particleSysPoint = targetPlayer->getPosition(); int HPResults = RPGComputingResults::attackResults(((RPGBattlePlayerSprite*)sender)->m_data->m_attack, ((RPGPlayer*)data)->m_defense); targetPlayer->showEffectResults(this, -HPResults, sender); + } } else if(dynamic_cast(sender) != NULL) { //怪物攻击player -// int hurtHP = RPGComputingResults::attackResults(((RPGBattleMonsterSprite*)data)->m_attack, ((RPGPlayer*)sender)->m_defense); + + RPGBattlePlayerSprite *targetPlayer = (RPGBattlePlayerSprite*)this->getChildByTag(kRPGBattleSceneLayerTagPlayer + ((RPGPlayer*)data)->m_dataId); + targetPlayer->animHurt(); + + particleSysPoint = targetPlayer->getPosition(); + + int HPResults = RPGComputingResults::attackResults(((RPGBattleMonsterSprite*)sender)->m_data->m_attack, ((RPGPlayer*)data)->m_defense); + targetPlayer->showEffectResults(this, -HPResults, sender); } @@ -731,6 +767,8 @@ void RPGBattleSceneLayer::attackResults(cocos2d::CCNode *sender, void *data) void RPGBattleSceneLayer::attackWithTargetEffectLabEnd(cocos2d::CCNode *sender, void* data) { + //data为发起攻击的Sprite对象 + CCLog("攻击流程完毕"); if(dynamic_cast(sender->getParent()) != NULL) @@ -750,15 +788,24 @@ void RPGBattleSceneLayer::attackWithTargetEffectLabEnd(cocos2d::CCNode *sender, CCLabelTTF *targetPlayerHP = (CCLabelTTF*)this->getChildByTag(kRPGBattleSceneLayerTagPlayerHP + targetPlayer->m_data->m_dataId); targetPlayerHP->setString(CCString::createWithFormat("%i", targetPlayer->m_data->m_HP)->getCString()); - //发起攻击的player还原通常时状态,并重新计算进度条 - RPGBattlePlayerSprite *srcPlayer = (RPGBattlePlayerSprite*)data; - - if(srcPlayer->m_data->m_status != kRPGDataStatusDeath) - srcPlayer->animNormal(); - - srcPlayer->m_data->m_progress = 0; - CCProgressTimer *battleProgress = (CCProgressTimer*)this->getChildByTag(kRPGBattleSceneLayerTagPlayerProgress + srcPlayer->m_data->m_dataId); - battleProgress->setPercentage(srcPlayer->m_data->m_progress); + if(dynamic_cast((CCObject*)data) != NULL) + { + //发起攻击的player还原通常时状态,并重新计算进度条 + RPGBattlePlayerSprite *srcPlayer = (RPGBattlePlayerSprite*)data; + + if(srcPlayer->m_data->m_status != kRPGDataStatusDeath) + srcPlayer->animNormal(); + + srcPlayer->m_data->m_progress = 0; + CCProgressTimer *battleProgress = (CCProgressTimer*)this->getChildByTag(kRPGBattleSceneLayerTagPlayerProgress + srcPlayer->m_data->m_dataId); + battleProgress->setPercentage(srcPlayer->m_data->m_progress); + } + else if(dynamic_cast((CCObject*)data) != NULL) + { + //发起攻击的怪物重新计算进度条 + RPGBattleMonsterSprite *srcMonster = (RPGBattleMonsterSprite*)data; + srcMonster->m_data->m_progress = 0; + } //判断是否胜利了 if(!this->judgeLose()) @@ -767,7 +814,7 @@ void RPGBattleSceneLayer::attackWithTargetEffectLabEnd(cocos2d::CCNode *sender, { // CCLog("输了"); SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true); - SimpleAudioEngine::sharedEngine()->playBackgroundMusic("audio_battle_lose.mp3", true); + SimpleAudioEngine::sharedEngine()->playBackgroundMusic("audio_battle_lose.mp3", false); this->showLoseResults(); } @@ -936,17 +983,17 @@ void RPGBattleSceneLayer::computingProgress() } //monster -// for (int i = 0; i < this->m_monsterDataList->count(); i++) -// { -// CCArray *monsters = (CCArray*)this->m_monsterDataList->objectAtIndex(i); -// for (int j = 0; j < monsters->count(); j++) -// { -// RPGMonster *monsterData = (RPGMonster*)monsters->objectAtIndex(j); -// -// float val = monsterData->m_speed / this->m_speedTotal * 100.0; -// monsterData->m_progress = val; -// } -// } + for (int i = 0; i < this->m_monsterDataList->count(); i++) + { + CCArray *monsters = (CCArray*)this->m_monsterDataList->objectAtIndex(i); + for (int j = 0; j < monsters->count(); j++) + { + RPGMonster *monsterData = (RPGMonster*)monsters->objectAtIndex(j); + + float val = monsterData->m_speed / this->m_speedTotal * 100.0; + monsterData->m_progress = val; + } + } } @@ -1123,6 +1170,8 @@ void RPGBattleSceneLayer::showLoseResults() loseResults->setTag(kRPGBattleSceneLayerTagLoseResultsDialog); this->addChild(loseResults); + this->enabledTouched(true); + //显示title addLab(loseResults, 5, CCString::create(((CCString*)this->m_stringList->objectForKey("lose_title"))->getCString()), 28, kCCTextAlignmentCenter, ccp(loseResults->getContentSize().width / 2, loseResults->getContentSize().height / 2)); diff --git a/Classes/RPGData.cpp b/Classes/RPGData.cpp index 1113833..7efcaa3 100644 --- a/Classes/RPGData.cpp +++ b/Classes/RPGData.cpp @@ -130,3 +130,27 @@ RPGExistingItems* RPGExistingItems::create() } //RPGExistingItems end + +RPGSaveData::RPGSaveData() +{ + +} + +RPGSaveData::~RPGSaveData() +{ + CCLog("RPGSaveData 释放"); +} + +RPGSaveData* RPGSaveData::create() +{ + RPGSaveData *obj = new RPGSaveData(); + if(obj) + { + obj->autorelease(); + return obj; + } + CC_SAFE_DELETE(obj); + return NULL; +} + +//RPGSaveData diff --git a/Classes/RPGData.h b/Classes/RPGData.h index ac84ad6..b763f1f 100644 --- a/Classes/RPGData.h +++ b/Classes/RPGData.h @@ -140,4 +140,23 @@ public: static RPGExistingItems* create(); }; +//存档 +class RPGSaveData : public CCObject +{ + +public: + + int m_dataId; + int m_mapId; + float m_playerToX; + float m_playerToY; + string m_playerDirection; + int m_gold; + + RPGSaveData(); + virtual ~RPGSaveData(); + + static RPGSaveData* create(); +}; + #endif /* defined(__OzgGameRPG__RPGData__) */ diff --git a/Classes/RPGMapSceneLayer.cpp b/Classes/RPGMapSceneLayer.cpp index 04c4ba4..f8a34aa 100755 --- a/Classes/RPGMapSceneLayer.cpp +++ b/Classes/RPGMapSceneLayer.cpp @@ -590,7 +590,15 @@ void RPGMapSceneLayer::playerMoveEnd() float toY = stringToNumber(playerToY->getCString()) + 0.5; //保存数据 - saveData(&this->m_db, stringToNumber(mapId->getCString()), toX, toY, playerDirection->getCString()); + + RPGSaveData *saveDataObj = RPGSaveData::create(); + saveDataObj->m_mapId = stringToNumber(mapId->getCString()); + saveDataObj->m_playerToX = toX; + saveDataObj->m_playerToY = toY; + saveDataObj->m_playerDirection = playerDirection->getCString(); + saveDataObj->m_gold = this->m_mapData.gold; + + saveData(&this->m_db, saveDataObj); CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this); this->unscheduleUpdate(); @@ -638,7 +646,30 @@ void RPGMapSceneLayer::playerMoveEnd() SimpleAudioEngine::sharedEngine()->playEffect("audio_battle_start.wav"); // CCLog("%i", this->m_saveData.mapId); + + RPGMapRoleSprite *player = (RPGMapRoleSprite*)bgMap->getChildByTag(kRPGMapSceneLayerTagPlayer); + CCUserDefault::sharedUserDefault()->setIntegerForKey("map_id", this->m_mapData.mapId); + CCUserDefault::sharedUserDefault()->setFloatForKey("player_to_x", player->getPosition().x / GAME_TMX_ROLE_WIDTH); + CCUserDefault::sharedUserDefault()->setFloatForKey("player_to_y", player->getPosition().y / GAME_TMX_ROLE_HEIGHT); + CCUserDefault::sharedUserDefault()->setIntegerForKey("gold", this->m_mapData.gold); + switch (player->m_direction) + { + case kRPGMapRoleSpriteDirectionUp: + CCUserDefault::sharedUserDefault()->setStringForKey("player_direction", "up"); + break; + case kRPGMapRoleSpriteDirectionDown: + CCUserDefault::sharedUserDefault()->setStringForKey("player_direction", "down"); + break; + case kRPGMapRoleSpriteDirectionLeft: + CCUserDefault::sharedUserDefault()->setStringForKey("player_direction", "left"); + break; + case kRPGMapRoleSpriteDirectionRight: + CCUserDefault::sharedUserDefault()->setStringForKey("player_direction", "right"); + break; + default: + break; + } CCScene *s = RPGLoadingSceneLayer::scene(loadTextures, releaseTextures, "single_battle"); CCTransitionFade *t = CCTransitionFade::create(GAME_SCENE, s); diff --git a/Resources/audio_battle_lose.mp3 b/Resources/audio_battle_lose.mp3 index 96e6485..e0d6e50 100755 Binary files a/Resources/audio_battle_lose.mp3 and b/Resources/audio_battle_lose.mp3 differ diff --git a/Resources/db.sys b/Resources/db.sys index 82370f8..e09035a 100755 Binary files a/Resources/db.sys and b/Resources/db.sys differ diff --git a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcshareddata/OzgGameRPG.xccheckout b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcshareddata/OzgGameRPG.xccheckout index 51d0224..bfeebf1 100644 --- a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcshareddata/OzgGameRPG.xccheckout +++ b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcshareddata/OzgGameRPG.xccheckout @@ -5,7 +5,7 @@ IDESourceControlProjectFavoriteDictionaryKey IDESourceControlProjectIdentifier - F2C82415-EB94-4FC6-83CD-0738BAC2C127 + DBF2011C-83EC-4385-93A5-BD4FBD25642A IDESourceControlProjectName OzgGameRPG IDESourceControlProjectOriginsDictionary 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 26ee2b7..252aac6 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 diff --git a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/tpwid.xcuserdatad/UserInterfaceState.xcuserstate b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/tpwid.xcuserdatad/UserInterfaceState.xcuserstate index 4388832..e8b0937 100644 Binary files a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/tpwid.xcuserdatad/UserInterfaceState.xcuserstate and b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/tpwid.xcuserdatad/UserInterfaceState.xcuserstate differ