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

时间:2016-07-10 17:18:32

标签: 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;
      }
 }

1 个答案:

答案 0 :(得分:0)

使用调度程序可能更好一点,例如:

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