Attualmente sto iniziando a studiare OpenGL a scuola e l'altro giorno ho iniziato a creare un gioco (da solo, non per la scuola). Sto usando Freeglut, e lo sto costruendo in C, quindi per il mio loop di gioco avevo appena usato una funzione che avevo passato glutIdleFunc
per aggiornare tutto il disegno e la fisica in un unico passaggio. Questo andava bene per le semplici animazioni che non mi interessavano troppo della frequenza dei fotogrammi, ma poiché il gioco è principalmente basato sulla fisica, voglio davvero (ho bisogno di) limitare la velocità di aggiornamento.
Quindi il mio primo tentativo è stato quello di avere la mia funzione a cui passo glutIdleFunc
( myIdle()
) per tenere traccia di quanto tempo è trascorso dalla precedente chiamata e aggiornare la fisica (e attualmente la grafica) ogni millisecondi. Lo facevo timeGetTime()
(usando <windows.h>
). E questo mi ha fatto pensare: usare la funzione inattiva è davvero un buon modo di fare il giro del gioco?
La mia domanda è: qual è il modo migliore per implementare il loop di gioco in OpenGL? Devo evitare di utilizzare la funzione inattiva?