每隔一定时间间隔不断保存游戏的正确方法是什么(例如:保存玩家的等级,获得的经验,当前的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;
}
}
最佳答案
使用调度程序可能是一个更好的主意,例如:
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。