使用SDL进行帧率独立更新?

时间:2011-08-01 02:07:02

标签: sdl render frame-rate

这是我的主要循环:

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()吗?我该怎么做呢?这比我之前的想法更好吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是“基于滴答的渲染循环”

http://www.flipcode.com/archives/Main_Loop_with_Fixed_Time_Steps.shtml