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 LCapítulo8¡Que comience el juego!Todo comienzo tiene su encanto.Goethe.Aestas alturas estás casi preparado para comenzar a hacer tu propio juego.Seguro que ya tienes alguna i<strong>de</strong>a en mente, pero antes, vamos a finalizar elque tenemos entre manos. Todavía nos quedan por ver algunos <strong>de</strong>talles, queaún siendo pequeños, no <strong>de</strong>jan <strong>de</strong> ser importantes. Es este capítulo vamos acompletar todos los aspectos <strong>de</strong>l juego y a ofrecer su listado completo. Por cierto, aún nole hemos puesto un nombre. Lo llamaremos 1945, como homenaje al juego 1942.EnemigosNuestro juego va a tener tres tipos <strong>de</strong> aviones enemigos. El primer tipo son los kamikaze,que se lanzarán en diagonal por la pantalla en dirección <strong>de</strong> nuestro avión tratando <strong>de</strong> impactar<strong>con</strong> nosotros. El segundo tipo, los cazas, realizarán una maniobra <strong>de</strong> aproximación, y cuandonos tengan a tiro, lanzarán un proyectil para <strong>de</strong>spués comenzar una acción evasiva. El tercertipo es el avión jefe, <strong>con</strong> el que tendremos que enfrentarnos al final <strong>de</strong> cada nivel, y al quenecesitaremos disparar 100 veces para po<strong>de</strong>r <strong>de</strong>struirlo. A<strong>de</strong>más, varios <strong>de</strong> estos enemigosse en<strong>con</strong>trarán a la vez en pantalla. Para manejar los aviones enemigos necesitamos mejorarla estructura <strong>de</strong> datos que utilizamos en el capítulo anterior.struct naveenemiga {int activo,x,y,dx,dy,tipo,estado,impactos,nframe;} enemigo[7];Como podrá haber un máximo <strong>de</strong> 7 enemigos a la vez en la pantalla, creamos un array<strong>de</strong> 7 elementos. El campo activo, nos indicará si se está utilizando ese elemento <strong>de</strong>larray actualmente o por el <strong>con</strong>trario está libre para po<strong>de</strong>r utilizarlo (igual que hacíamos<strong>con</strong> el array <strong>de</strong> disparos). Los campos X e Y son las coor<strong>de</strong>nadas <strong>de</strong>l avión. Los camposDX y DY son importantes: indican la dirección <strong>de</strong>l avión para su movimiento. Estos valoresse suman a las coor<strong>de</strong>nadas <strong>de</strong>l avión en cada frame. Veámoslo mejor <strong>con</strong> un ejemplo.Si queremos que nuestra nave se mueva <strong>de</strong> arriba a abajo <strong>de</strong> forma vertical, a unavelocidad <strong>de</strong> 3 píxeles por frame, daremos los siguientes valores a estos campos:117

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

Saved successfully!

Ooh no, something went wrong!