He leído que la velocidad de los objetos del juego no debe verse obstaculizada por FPS, sino que debe basarse en el tiempo. ¿Cómo puedo separar el código de actualización / dibujo para maximizar el rendimiento sin limitar la velocidad de dibujo y proporcionar una velocidad de actualización lógica constante basada en el tiempo?
Mi pseudocódigo actual es el siguiente
loop
{
draw();
if (ticksElapsed() > 100)
{
update();
ticks+= ticksElapsed();
}
}
El problema es que el código de dibujo dificulta el rendimiento de la tasa de actualización (). Y consume 100% de CPU porque si se le duerme, se liberan ambas funciones de dibujo / lógica.
También estoy usando SDL y no parece tener una opción vsync. También he oído hablar de los términos fijo y variable, sin embargo, no estoy seguro de cómo se puede hacer con el sueño ()