Я читал, что скорость игровых объектов не должна ограничиваться FPS, а должна зависеть от времени. Как можно разделить код обновления / прорисовки, чтобы максимизировать производительность, не ограничивая скорость прорисовки и обеспечивая постоянную частоту обновления логики в зависимости от времени?
Мой текущий псевдокод выглядит следующим образом
loop
{
draw();
if (ticksElapsed() > 100)
{
update();
ticks+= ticksElapsed();
}
}
Проблема в том, что код рисования препятствует повышению скорости обновления (). И он потребляет 100% процессорного времени, потому что если включить режим сна, он отбрасывает обе функции рисования / логики.
Я также использую SDL, и у него нет опции vsync. Я также слышал о терминах фиксированный и переменный шаг по времени, однако я не уверен, как это можно сделать с помощью сна ()