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