Ho letto che la velocità degli oggetti di gioco non dovrebbe essere ostacolata da FPS ma dovrebbe essere basata sul tempo. Come posso separare il codice di aggiornamento / disegno per massimizzare le prestazioni senza limitare la velocità di disegno e fornire una velocità di aggiornamento della logica costante in base al tempo?
Il mio attuale pseudo codice è il seguente
loop
{
draw();
if (ticksElapsed() > 100)
{
update();
ticks+= ticksElapsed();
}
}
Il problema è che il codice di disegno ostacola le prestazioni della frequenza update (). E consuma il 100% della CPU perché se viene gettato il sonno, getta via entrambe le funzioni di disegno / logica.
Sto anche usando SDL e non sembra avere un'opzione vsync. Ho anche sentito parlare dei termini a tempo fisso e variabile, tuttavia non sono sicuro di come si possa fare con sleep ()