Проблема управления частотой кадров игры C++

Я программирую игру на C++, и у меня возникают проблемы с созданием способа, чтобы игра обновлялась только 60 раз в секунду. Код, который я написал, выглядит так, как будто он должен работать, но частота кадров фактически составляет 44 кадра в секунду вместо 60.

const int               FRAMES_PER_SECOND = 60;
const int               FRAME_CONTROL = (1000 / FRAMES_PER_SECOND);
double                  lastFrameTime;
double                  currentFrameTime;

void GameLoop()
{
    currentFrameTime = GetTickCount();

    if ((currentFrameTime - lastFrameTime) >= FRAME_CONTROL)
    {
        lastFrameTime = currentFrameTime;

        // Update Game.
    }
}

Так что да, это должно быть 60 кадров, но на самом деле оно работает на 44. И класс, который я использую для подсчета частоты кадров, отлично работает в других программах, которые уже имеют ограниченную частоту кадров.

Есть идеи, в чем проблема?

1 ответ

Решение

Это из-за разрешения getTickCount, Эта функция дает только разрешение 10-16 мс Microsoft GetTickCount()

Другие вопросы по тегам