什么是正确的保存游戏的方法(例如:保存玩家的等级,获得的经验,当前的 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/