请教定时器

想请教一下如何做到精确定时

比如现在我用schedule去定时一个函数,每0.05秒执行一次,但发现误差好大,1秒内被执行函数并没有精确被调用20次,而是16次左右

然后我程序的渲染次数15次,感觉不算多吧,那些大型的游戏是如何做到精确定时的呢?

谢谢

能将你那部分代码放上来看看吗?

你帧率必须大于20时,因为定时器是每帧调一次

自己计经过时间。每次调用加dt。

schedule(schedule_selector(GameScene::timeBoardSchedule), 0.05f);

void GameScene::timeBoardSchedule(float interval) {
timeBoard->updateTime();//这个函数没执行二十多条语句
}

然后我设置的帧率是50,然后显示的帧率是48到49+波动

怎么记得看过一个教学视频说那个dt参数不是会自动修正偏差?

要自己按dt修正?

dt,这是个浮点数本身就存在精度的问题

schedule(schedule_selector(GameScene::timeBoardSchedule), 0.05f);

好了,现在直接用c++的线程做了,比schedule可控性好多了