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

Я программирую игру на 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 ()

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]