[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 Lmodificar ciertos atributos, como la posición en la pantalla, si es o no visible, etc... Unsprite, pues, tiene capacidad <strong>de</strong> movimiento. Distinguimos dos tipos <strong>de</strong> movimiento en lossprites. El movimiento externo, es <strong>de</strong>cir, el movimiento <strong>de</strong>l sprite por la pantalla, y elmovimiento interno o animación.Para posicionar un sprite en la pantalla hay que especificar sus coor<strong>de</strong>nadas. Es comoel juego <strong>de</strong> los barquitos, en el que para i<strong>de</strong>ntificar un cuadrante hay que indicar una letrapara el eje horizontal (lo llamaremos eje Y) y un número para el eje horizontal (al quellamaremos eje X). En un or<strong>de</strong>nador, un punto en la pantalla se representa <strong>de</strong> formaparecida. Tenemos un eje horizontal (eje X) y otro vertical (eje Y). La esquina superiorizquierda representa el centro <strong>de</strong> coor<strong>de</strong>nadas. La figura siguiente muestra el eje <strong>de</strong>coor<strong>de</strong>nadas en una pantalla <strong>con</strong> una resolución <strong>de</strong> 320 por 200 píxeles.Figura 5.2. Ejes <strong>de</strong> coor<strong>de</strong>nadas.Un punto se i<strong>de</strong>ntifica dando la distancia en el eje X al lateral izquierdo <strong>de</strong> la pantalla yla distancia en el eje Y a la parte superior <strong>de</strong> la pantalla. Las distancias se mi<strong>de</strong>n enpíxeles. Si queremos indicar que un sprite está a 100 píxeles <strong>de</strong> distancia <strong>de</strong>l eje verticaly 150 <strong>de</strong>l eje horizontal, <strong>de</strong>cimos que está en la coor<strong>de</strong>nada (100,150).Imagina ahora que jugamos a un vi<strong>de</strong>juego en el que manejamos a un hombrecillo(piensa en juegos como Pitfall o Renega<strong>de</strong>). Al mover a nuestro hombrecillo, po<strong>de</strong>mosobservar cómo mueve las piernas y los brazos según avanza por la pantalla. Éste es elmovimiento interno o animación. La siguiente figura muestra la animación <strong>de</strong>l sprite <strong>de</strong> ungato.Figura 5.3. Animación <strong>de</strong> un sprite.Otra característica muy interesante <strong>de</strong> los sprites es que nos permiten <strong>de</strong>tectarcolisiones entre ellos. Esta capacidad es realmente interesante si queremos <strong>con</strong>ocercuando nuestro avión ha chocado <strong>con</strong> un enemigo o <strong>con</strong> uno <strong>de</strong> sus misiles.Control <strong>de</strong> spritesVamos a realizar una pequeña librería (y cuando digo pequeña, quiero <strong>de</strong>cir realmentepequeña) para el manejo <strong>de</strong> los sprites. Luego utilizaremos esta librería en nuestro juego.Por supuesto, también pue<strong>de</strong>s utilizarla en tus propios juegos, así como ampliarla, ya quecubrirá sólo los aspectos básicos en lo referente a sprites.Realizaremos la librería en C++ en lugar <strong>de</strong> C. Podríamos haberla creadocompletamente en C, pero <strong>con</strong>si<strong>de</strong>ro <strong>con</strong>veniente introducir, aunque sea poco, algo <strong>de</strong>77