(Programación de juegos C) ¿Cómo limitar con precisión la velocidad de fotogramas?
Copié tu programa y vi que en realidad es solo 21 fps.
Pero reemplaza
time start = getTickCount();//restablecer la hora de inicio
en lugar de
time start = 33; / /33 es 1000/fps.
Es preciso fps=30.
De todos modos, después del cambio,
int Game_Main(){
static int time start = getTickCount() //Asignar valor cuando se llama a la función. por primera vez.
while(getTickCount()-time start lt; 33)
time start = 33
Devuelve 1; /p>
Hablando de la realidad, hablemos de comer más de 10 MS.
while(gettickcount())-time start
Obviamente, el valor obtenido al llamar a GetTickCount() después de esto es más de 10 ms mayor que timeStart 33.
Tampoco uses división, no es necesario. Después de todo, los fps son 30 o 60, por lo que usar su propia constante es, por supuesto, más rápido.
Por fin. Apoyo lo que dijo un chico antes, no consumas demasiada CPU. En cuanto al método, si no quieres dormir solo, piénsalo más. Para ser honesto, no tengo idea de un bucle de 33 ms. ...