Предел истекшего времени кадра в игре l oop (Java) - PullRequest
0 голосов
/ 04 мая

Я прочитал статью Гленна Фидлера («Исправьте свой временной шаг!») О том, как настроить игру l oop. Интересно, почему он устанавливает ограничение на время кадра 250 мс. Кто-нибудь знает?

double t = 0.0;
double dt = 0.01;

double currentTime = hires_time_in_seconds();
double accumulator = 0.0;

State previous;
State current;

while ( !quit )
{
    double newTime = time();
    double frameTime = newTime - currentTime;
    if ( frameTime > 0.25 )
        frameTime = 0.25;
    currentTime = newTime;

    accumulator += frameTime;

    while ( accumulator >= dt )
    {
        previousState = currentState;
        integrate( currentState, t, dt );
        t += dt;
        accumulator -= dt;
    }

    const double alpha = accumulator / dt;

    State state = currentState * alpha + 
        previousState * ( 1.0 - alpha );

    render( state );
}
...