Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

Fin del juego

Este es el paso 6 de los 12 del tutorial para crear un juego Breakout con Phaser. Para que el juego sea más interesante, podemos introducir la posibilidad de perder: si no golpeas la pelota antes de que llegue al borde inferior de la pantalla, será el fin del juego.

Cómo perder

Para introducir la posibilidad de perder, desactivaremos la colisión de la pelota con el borde inferior de la pantalla. Añade el código siguiente dentro del método create(), al principio del todo:

js
this.physics.world.checkCollision.down = false;

Así, las tres paredes (superior, izquierda y derecha) harán rebotar la pelota, pero la cuarta (inferior) desaparecerá, lo que deja que la pelota caiga fuera de la pantalla si la paleta no la alcanza. Necesitamos una forma de detectarlo y actuar en consecuencia. Añade las líneas siguientes al final del método update():

js
const ballIsOutOfBounds = !Phaser.Geom.Rectangle.Overlaps(
  this.physics.world.bounds,
  this.ball.getBounds(),
);
if (ballIsOutOfBounds) {
  // Lógica de fin del juego
  alert("¡Fin del juego!");
  location.reload();
}

Con esas líneas se comprueba si la pelota se sale de los límites del mundo (en nuestro caso, del canvas) y, en ese caso, se muestra una alerta. Al hacer clic en la alerta, la página se recarga y puedes volver a jugar.

Nota: La experiencia de usuario aquí es bastante mejorable, porque alert() muestra un cuadro de diálogo del sistema y bloquea el juego. En un juego real, probablemente querrías diseñar tu propio cuadro de diálogo modal con <dialog>.

Además, más adelante añadiremos un botón "Start", pero por ahora el juego empieza en cuanto se carga la página, así que podrías "perder" antes incluso de empezar a jugar. Para evitar el molesto cuadro de diálogo, a partir de ahora quitaremos la llamada a alert().

Compara tu código

Esto es lo que deberías tener hasta ahora, funcionando en vivo. Para ver su código fuente, haz clic en el botón "Play".

Próximos pasos

Ahora que ya tenemos la jugabilidad básica, hagámosla más interesante añadiendo ladrillos que romper: es hora de construir el muro de ladrillos.