这是我的主要循环:
while (!done)
{
oldTimeMS = timeMS;
timeMS = SDL_GetTicks();
frameTimeMS = timeMS - oldTimeMS;
frameTime = ((float)timeMS / 1000.0f)*FPS;
update();
render();
}
FPS为60.我可以通过执行
来独立更新变量var = var+increment*frameTime;
但是我怎样才能使update()仅在一定间隔(时间,而不是帧)之后调用?我希望每帧都尽可能多地调用render()。但我希望update()只能在基于时间的间隔调用。如何使用这些变量进行设置?提前谢谢。
编辑: 等等......我不希望在下一帧渲染之前尽可能多地调用update()吗?我该怎么做呢?这比我之前的想法更好吗?
答案 0 :(得分:0)
您正在寻找的是“基于滴答的渲染循环”
http://www.flipcode.com/archives/Main_Loop_with_Fixed_Time_Steps.shtml