// --- Comprobar colisiones de enemigo con personaje, etc public void comprobarColisiones() { // Colisiones de personaje con fondo: obtener puntos o perder vida int puntosMovimiento = miPantallaJuego.ObtenerPuntosPosicion( miPersonaje.GetX(), miPersonaje.GetY(), miPersonaje.GetX() + miPersonaje.GetAncho(), miPersonaje.GetY() + miPersonaje.GetAlto()); // Si realmente ha recogido un objeto, sumamos los puntos en el juego if (puntosMovimiento > 0) { puntos += puntosMovimiento; // Si ademas es una campana, avanzamos de nivel if (puntosMovimiento == 50) { //avanzarNivel() miPantallaJuego.Avanzar(); } } if (miPersonaje.ColisionCon(miEnemigo)) { miPersonaje.Morir(); miPersonaje.Reiniciar(); miEnemigo.Reiniciar(); } if (miPersonaje.GetVidas() == 0) { partidaTerminada = true; } }
// --- Comprobar colisiones de enemigo con personaje, etc --- void comprobarColisiones() { // Colisiones de personaje con fondo: obtener puntos o perder vida int puntosMovimiento = miPantallaJuego.ObtenerPuntosPosicion( miPersonaje.GetX(), miPersonaje.GetY(), miPersonaje.GetX() + miPersonaje.GetAncho(), miPersonaje.GetY() + miPersonaje.GetAlto()); // Si realmente ha recogido un objeto, sumamos los puntos en el juego if (puntosMovimiento > 0) { puntos += puntosMovimiento; // Si ademas es una puerta, avanzamos de nivel if (puntosMovimiento == 50) { miPantallaJuego.Avanzar(); } } // Y si la puntuacion es -1, ha chocado con el fondo: // recolocar y perder vida if (puntosMovimiento < 0) { miPersonaje.Morir(); miPersonaje.Reiniciar(); for (int i = 0; i < miPantallaJuego.GetNumEnemigos(); i++) { miPantallaJuego.GetEnemigo(i).Reiniciar(); } } // Igual caso para las colisiones de personaje con enemigo for (int i = 0; i < miPantallaJuego.GetNumEnemigos(); i++) { if (miPersonaje.ColisionCon(miPantallaJuego.GetEnemigo(i))) { miPersonaje.Morir(); miPersonaje.Reiniciar(); for (int j = 0; j < miPantallaJuego.GetNumEnemigos(); j++) { miPantallaJuego.GetEnemigo(i).Reiniciar(); } break; } } if (miPersonaje.GetVidas() == 0) { partidaTerminada = true; } }