[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
P R O G R A M A C I Ó N D E V I D E O J U E G O S C O N S D Lvoid ResetTimeBase() {ini_milisegundos=<strong>SDL</strong>_GetTicks();}int CurrentTime() {fin_milisegundos=<strong>SDL</strong>_GetTicks();return fin_milisegundos-ini_milisegundos;}La función ResetTimeBase() utiliza la función <strong>SDL</strong>_GetTicks para almacenar eltiempo en milisegundos transcurridos <strong>de</strong>s<strong>de</strong> la inicialización <strong>de</strong> <strong>SDL</strong>. Este valor, esutilizado por la función CurrentTime() para calcular cuantos milisegundos hantranscurrido <strong>de</strong>s<strong>de</strong> la llamada a ResetTimeBase(). El procedimiento <strong>de</strong> <strong>con</strong>trol es elsiguiente. Al principio <strong>de</strong>l game loop realizamos una llamada a ResetTimeBase() parainicializar el <strong>con</strong>tador. Al finalizar el game loop utilizamos el siguiente código.do {frametime=CurrentTime();} while (frametimew;rectangulo.h=ttext->h;<strong>SDL</strong>_SetColorKey(ttext,<strong>SDL</strong>_SRCCOLORKEY|<strong>SDL</strong>_RLEACCEL, <strong>SDL</strong>_MapRGB(ttext->format,255,0,0));<strong>SDL</strong>_BlitSurface(ttext,NULL,screen,&rectangulo);Este código no necesita <strong>de</strong>masiada explicación. Simplemente comentar que utilizamosla función sprintf() para pasar el valor <strong>de</strong> la puntuación, que es <strong>de</strong> tipo int, a unaca<strong>de</strong>na <strong>de</strong> texto tipo char.El número <strong>de</strong> vidas se va a mostrar al jugador <strong>de</strong> forma gráfica <strong>con</strong> pequeñosavioncitos. Tantos como vidas tengamos. Este código dibuja los avioncitos (almacenadosen el sprite life) cada 22 píxeles.// Dibuja las vidas <strong>de</strong>l jugadorfor (i=1 ; i