Necesito una función para 'esperar'

Hola,

Estaba desarrollando un pequeño juego, y quería saber si existe alguna función que me permita esperar un cierto período de tiempo antes de que se ejecute algo, como por ejemplo, la función 'sleep' en Linux.

¡Un saludo!
prueba con esto

void esperar(int tiempo){
int i;
for(i=0;i<tiempo;i++)
  PA_WaitForVBL();
}


Obviamente lo que tienes que hacer es pasar en tiempo el numero de segundos que quieras esperar multiplicado por 60. Espero que te sirva
Ya me funciona. Muchas gracias :)
alaa!, esa solución es demasiado del palo.

Dependes completamente de la velocidad del procesador, eso no son segundos ni de coña aunque lo multipliques por 60 lo unico que haces es cargar la cpu para nada, lo que tienes que hacer es usar timers, en una variable te guardas un tiempo, y vas comparándolo con el tiempo actual y cuando la diferencia sea de los x segundos que quieres esperar pues significa que y a has esperado el tiempo suficiente y además mientras puedes hacer más cosas.
petrix escribió:alaa!, esa solución es demasiado del palo.

Dependes completamente de la velocidad del procesador, eso no son segundos ni de coña aunque lo multipliques por 60 lo unico que haces es cargar la cpu para nada, lo que tienes que hacer es usar timers, en una variable te guardas un tiempo, y vas comparándolo con el tiempo actual y cuando la diferencia sea de los x segundos que quieres esperar pues significa que y a has esperado el tiempo suficiente y además mientras puedes hacer más cosas.

La pantalla de la DS se refresca 59.9 veces por segundo, mas o menos. Si esperas 1 segundo o 2, el error es pequeñísimo, no merece la pena complicarse la vida con timers. Y otra cosa, con esas funciones no cargas a la CPU, de hecho, usando PA_WaitForVBL (que llama internamente a swiWaitForVBlank) el procesador entra en un modo de consumo reducido hasta que se llega al periodo vblank... Siempre se puede poner alguna función que actualize el juego en el bucle de espera... Eso si, dejarlo como una función aparte si que no merece la pena. El bucle lo pones justo en la parte del código que necesitas que espere, y pones las funciones que hagan falta dentro.
4 respuestas