Независимое от частоты кадров обновление с использованием SDL? - PullRequest
1 голос
/ 01 августа 2011

Это мой основной цикл:

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 голосов
/ 01 августа 2011

То, что вы ищете, это «тиковый цикл рендеринга»

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

...