Por Nacho Cabanes
Veamos cómo hacerlo...
Casi ninguno: la rutina de colisiones (básica, por solapamiento de rectángulos) ya está definida en la clase ElemGrafico, así que basta con asegurarnos de que hayamos indicado el ancho y el alto de cada uno de los elementos que puede chocar, para que la comprobación de estas colisiones sea correcta.
Lo haríamos en el constructor de cada una de estas clases: para enemigo
public class Enemigo : ElemGrafico { // Constructor public Enemigo(Partida p) { [...] SetAnchoAlto(36, 48); } [...]
y para personaje
public class Personaje : ElemGrafico { [...] // Constructor public Personaje(Partida p) { [...] SetAnchoAlto(30, 48); } [...]
La rutina de comprobación de colisiones, que hasta ahora estaba vacia, deberá comprobar si tocamos al enemigo, para restar una vida, y dar la partida por terminada cuando no nos queden vidas. De paso, podemos hacer que la rutina de dibujar elementos al menos avise de cuantas vidas nos quedan:
// --- Comprobar colisiones de enemigo con personaje, etc --- void comprobarColisiones() { if (miPersonaje.ColisionCon(miEnemigo)) { miPersonaje.Morir(); miPersonaje.Reiniciar(); miEnemigo.Reiniciar(); } if (miPersonaje.GetVidas() == 0) partidaTerminada = true; } // --- Dibujar en pantalla todos los elementos visibles del juego --- void dibujarElementos() { // Borro pantalla Hardware.BorrarPantallaOculta(0,0,0); // Dibujo todos los elementos miPantallaJuego.DibujarOculta(); miPersonaje.DibujarOculta(); miEnemigo.DibujarOculta(); // Muestro vidas (pronto será parte del marcador) Hardware.EscribirTextoOculta("Vidas: "+miPersonaje.GetVidas(), 280, 550, 0xAA, 0xAA, 0xAA, fuenteSans18); // Finalmente, muestro en pantalla Hardware.VisualizarOculta(); }
En Juego no es necesario ningún cambio, pero podemos aprovechar para hacer una pequeña mejora: si usamos la tecla Espacio para entrar al juego y también para saltar, la partida comenzará con nuestro personaje saltando, sí que podemos hacer que se comience a jugar con la tecla J.
La Presentación tampoco necesita cambios... salvo avisar de esa tecla en su pequeña zona de ayuda.
De paso, podemos preparar una pantalla de Opciones, que más adelante nos permita escoger cosas como imágenes de mayor o menor resolución, jugar en ventana o pantalla completa, etc. De momento se limitará a escribir texto, por lo que será casi igual que la pantalla de Creditos.
No hay apenas cambios en la apariencia. Esta versión es la 0.07, que puedes descargar en la página del proyecto en Google Code.