10.07.2015 Views

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

SHOW MORE
SHOW LESS

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 LEl Window ManagerUn window manager o gestor <strong>de</strong> ventanas es un programa que nos permite ejecutaraplicaciones <strong>de</strong>ntro <strong>de</strong> ventanas, realizar acciones como cortar y pegar entreaplicaciones, mover y cambiar el tamaño <strong>de</strong> las ventanas, etc... En el caso <strong>de</strong> Windows,el gestor <strong>de</strong> ventanas forma parte <strong>de</strong>l propio sistema operativo. En otros entornos, comoLinux, po<strong>de</strong>mos trabajar <strong>con</strong> el gestor <strong>de</strong> ventanas que más nos guste, como KDE oGnome por nombrar los dos más <strong>con</strong>ocidos. Habrás notado que todas las aplicacionesque hemos realizado hasta ahora, al ejecutarse mostraban el nombre <strong>SDL</strong>_app en laventana. Este es el nombre por <strong>de</strong>fecto. Po<strong>de</strong>mos cambiar este nombre mediante lasiguiente función:void <strong>SDL</strong>_WM_SetCaption(<strong>con</strong>st char *title, <strong>con</strong>st char *i<strong>con</strong>);Don<strong>de</strong> el primer parámetro es el título <strong>de</strong> la aplicación y el segundo el nombre <strong>de</strong>licóno. En Windows este segundo parámetro no se utiliza. Po<strong>de</strong>mos <strong>con</strong>ocer los valoresactuales <strong>con</strong> la siguiente función.void <strong>SDL</strong>_WM_GetCaption(char **title, char **i<strong>con</strong>);Para cambiar el i<strong>con</strong>o <strong>de</strong> la aplicación po<strong>de</strong>mos utilizar la funciónvoid <strong>SDL</strong>_WM_SetI<strong>con</strong>(<strong>SDL</strong>_Surface *i<strong>con</strong>, Uint8 *mask);El primer parámetro es una surface que <strong>con</strong>tiene el icóno. En Windows este icóno ha<strong>de</strong> tener una resolución <strong>de</strong> 32x32 píxeles. El segundo parámetro es un puntero a un array<strong>con</strong>teniendo la máscara <strong>de</strong> bits para el icóno (esto es usado para <strong>de</strong>finir la forma <strong>de</strong>licóno y sus partes transparentes). Si como valor pasamos NULL, las transparenciasestarán <strong>de</strong>finias por el color key <strong>de</strong> la superficie. Veamos un ejemplo simple:<strong>SDL</strong>_WM_SetI<strong>con</strong>(<strong>SDL</strong>_LoadBMP("i<strong>con</strong>.bmp"), NULL);Si queremos minimizar la aplicación mientras se ejecuta, usaremos la funciónint <strong>SDL</strong>_WM_I<strong>con</strong>ifyWindow(void);Si no se pudo minimizar la aplicación, esta función <strong>de</strong>volverá el valor 0.TimmingVamos a terminar esta introducción a <strong>SDL</strong> <strong>con</strong> el <strong>con</strong>trol <strong>de</strong> tiempo. Dejamos sin tratar todolo referido a multitarea y programación <strong>de</strong> hilos. Hay que saber bién lo que se está haciendo ytener, al menos, unos sólidos <strong>con</strong>ocimientos sobre multitarea y sistemas operativos para sacarprovecho a esta capacidad <strong>de</strong> <strong>SDL</strong>. Afortunadamente, no nos va a ser necesaria para crearvi<strong>de</strong>ojuegos.Lo que si nos va a hacer falta es po<strong>de</strong>r <strong>con</strong>trolar el tiempo. Es una taréa esencial, ya queno todos los or<strong>de</strong>nadores funcionan a la misma velocidad. Si no <strong>con</strong>trolaramos el tiempo,nuestro juego funcionaría bien en algunos or<strong>de</strong>nadores, pero en otros (los más rápidos) iría auna velocidad endiablada. Vamos <strong>con</strong> la primera función.Uint32 <strong>SDL</strong>_GetTicks(void);60

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!