【问题标题】:Framerate independent update using SDL?使用 SDL 进行帧率独立更新?
【发布时间】:2011-10-17 03:27:33
【问题描述】:

这是我的主循环:

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

【问题讨论】:

    标签: sdl render frame-rate


    【解决方案1】:

    您正在寻找的是“基于刻度的渲染循环”

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多