c++ - Cocos2dx v3 - 每隔一定时间间隔不断保存游戏的正确方法?

标签 c++ cocos2d-x cocos2d-x-3.0

什么是正确的保存游戏的方法(例如:保存玩家的等级,获得的经验,当前的 HP/MP 等)每隔一定的时间间隔不断,以便

即使用户不当退出游戏,他/她也能回到游戏原来的状态吗?

这样合适吗?

 float _interval;

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


      // Run every frame
      _interval = 0;
      this->scheduleUpdate();
 } 

 void GameMaster::update(float dt) {
      _interval += dt;
      if(_interval > 10.0) {
           // Runs every 10 sec
           saveGame();

           // Restart the counter
           _interval = 0.0;
      }
 }

最佳答案

使用 Scheduler 可能是一个更好的主意,比如:

float _interval;

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

  Scheduler* scheduler = Director::getInstance()->getScheduler();

  scheduler->schedule(schedule_selector(GameMaster::saveGame), this,
                      _interval, true);
} 

void GameMaster::saveGame(float deltaTime) {
    saveGame();
}

您可以找到调度程序的文档 here .

关于c++ - Cocos2dx v3 - 每隔一定时间间隔不断保存游戏的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38294533/

相关文章:

c++ atioglxx.pdb 包含查找模块 atioglxx.dll 源代码所需的调试信息

c++ - 为什么 g++ 在未执行的代码处标记一个转换错误?

c++ - CCPoint 到 float 转换

ios - Cocos2d-x ReplaceScene 导致应用程序崩溃

ios - 如何在ios中的COCOS2dx中实现应用内购买?

c++ - 无法接触到在多平台 cocos2d-x 应用程序中工作

c++ - 为什么从中心原点旋转

c++ - QtConcurrent::map 和指针列表

c++ - 使用 cocos2d-x 将 Sprite 内容保存为 .png 文件

android - Cocos2d-x-3.1.1 在运行 build_native.py 时出错