Cocos2d-x数据存储

时间:2023-03-09 02:57:57
Cocos2d-x数据存储

分别是使用UserDefault,内置文件管理和sqlite3数据库的一般方式:

主要代码:

 bool DataScene::init(){
     if (!Layer::init()){
         return false;
     }

     auto data = UserDefault::getInstance();

     const std::string key1 = "KEY1";
     const std::string key2 = "KEY2";

     data->setBoolForKey(key1.c_str(),true);
     data->setStringForKey(key2.c_str(), "DATA");

     if (data->getBoolForKey(key1.c_str())){
         log("TRUE");
     }
     else{
         log("FALSE");
     }
     log(data->getStringForKey(key2.c_str()).c_str());

     auto fileUtils = FileUtils::getInstance();
     if (fileUtils->isFileExist("girls.plist"))
     {
         log(fileUtils->fullPathForFilename("girls.plist").c_str());
         log("Exists");
     }

     sqlite3 *pDB = NULL;
     char *errMsg = NULL;
     int result = sqlite3_open("hero.db", &pDB);
     if (result == SQLITE_OK){
         log("OK");
         result = sqlite3_exec(pDB, "CREATE TABLE hero(id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(10) NOT NULL)", NULL, NULL, &errMsg);
         if (result == SQLITE_OK){
             log("OK CREATE");
             result = sqlite3_exec(pDB, "INSERT INTO hero VALUES(0,'LHYZ')", NULL, NULL, &errMsg);
             if (result == SQLITE_OK){
                 log("OK INSERT");
             }
             else{
                 log(errMsg);
             }
         }
         else{
             log(errMsg);
         }
     }

     return true;
 }

首次运行的结果:

Cocos2d-x数据存储

第二次运行的结果:

Cocos2d-x数据存储

找到数据库文件(Resources下才是):

数据包括:

Cocos2d-x数据存储

注意使用sqlite3需要在官网上下载源代码,把其中的sqlite3.h和sqlite3.cpp包含到项目下:

Cocos2d-x数据存储

以上。