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