Files
OzgGameRPG/Classes/RPGBaseSceneLayer.cpp
T
2014-04-25 23:35:11 +08:00

87 lines
2.9 KiB
C++
Executable File

//
// RPGBaseSceneLayer.cpp
// OzgGameRPG
//
// Created by ozg on 14-3-17.
//
//
#include "RPGBaseSceneLayer.h"
void addLab(CCNode* parentNode, int tag, CCString* text, CCPoint point)
{
addLab(parentNode, tag, text, 20, point);
}
void addLab(CCNode* parentNode, int tag, CCString* text, float fontSize, CCPoint point)
{
addLab(parentNode, tag, text, fontSize, kCCTextAlignmentLeft, point);
}
void addLab(CCNode* parentNode, int tag, CCString* text, float fontSize, CCTextAlignment textAlignment, CCPoint point)
{
CCLabelTTF *textLab = CCLabelTTF::create(text->getCString(), "Arial", fontSize, CCSizeMake(400, 25), textAlignment);
textLab->setPosition(point);
textLab->setTag(tag);
parentNode->addChild(textLab);
}
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', 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)
{
for (int i = 0; i < playerDataList->count(); i++)
{
RPGPlayer *playerData = (RPGPlayer*)playerDataList->objectAtIndex(i);
CCString *sql = CCString::createWithFormat("update player set max_hp = %i, hp = %i, max_mp = %i, mp = %i, attack = %f, defense = %f, speed = %f, skill_attack = %f, skill_defense = %f, items_id_arms = %i, items_id_armor = %i, level = %i, skill = '%s', next_exp = %i where id = %i", playerData->m_maxHP, playerData->m_HP, playerData->m_maxMP, playerData->m_MP, playerData->m_attack, playerData->m_defense, playerData->m_speed, playerData->m_skillAttack, playerData->m_skillDefense, playerData->m_itemsIdArms, playerData->m_itemsIdArmor, playerData->m_level, playerData->m_skill.c_str(), playerData->m_nextExp, playerData->m_dataId);
db->execDML(sql->getCString());
}
}
RPGBaseSceneLayer::RPGBaseSceneLayer()
{
}
RPGBaseSceneLayer::~RPGBaseSceneLayer()
{
this->m_db.close();
}
bool RPGBaseSceneLayer::init()
{
if(CCLayer::init())
{
string dbPath = CCFileUtils::sharedFileUtils()->getWritablePath();
dbPath.append(GAME_SYS_DB);
this->m_db.open(dbPath.c_str());
return true;
}
return false;
}