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 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

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

Saved successfully!

Ooh no, something went wrong!