Aleatorizar la jugabilidad
Este es el paso 11 de los 11 del tutorial para crear un juego Breakout con JavaScript puro. Nuestro juego parece terminado, pero si te fijas bien, notarás que la pelota rebota en la paleta con el mismo ángulo durante toda la partida. Esto significa que todas las partidas son bastante parecidas. Para solucionarlo y mejorar la jugabilidad, deberíamos hacer que los ángulos de rebote sean más aleatorios, y en este artículo veremos cómo.
Hacer los rebotes más aleatorios
Podemos cambiar la velocidad de la pelota según el punto exacto en el que golpee la paleta, modificando la velocidad en x cada vez que se ejecute el método onCollide() de la paleta con una línea como la siguiente. Añade ahora esta línea nueva a tu código y pruébala.
class Paddle extends GameObject {
// …
onCollide() {
ball.playWobble();
ball.vel.x = -5 * (this.pos.x - ball.pos.x);
}
}
Es un poco de magia: cuanto mayor sea la distancia entre el centro de la paleta y el punto en el que la golpea la pelota, mayor será la nueva velocidad. Además, la dirección (izquierda o derecha) depende de ese valor: si la pelota golpea el lado izquierdo de la paleta, rebotará hacia la izquierda, mientras que si golpea el lado derecho, rebotará hacia la derecha. Quedó así tras experimentar un poco con los valores dados; puedes hacer tus propios experimentos y ver qué pasa. Por supuesto, no es completamente aleatorio, pero hace que la jugabilidad sea algo más impredecible y, por lo tanto, más interesante.
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".
Resumen
Has terminado todas las lecciones, ¡felicidades! A estas alturas habrás aprendido los fundamentos de Phaser y la lógica que hay detrás de los juegos 2D sencillos.
Ejercicios para continuar
Puedes hacer mucho más en el juego: añade lo que creas que lo hará más divertido e interesante. Para que empieces, aquí tienes algunas sugerencias sobre cómo podrías ampliar nuestro pequeño juego:
- Añadir una segunda pelota o paleta.
- Cambiar el color del fondo con cada golpe.
- Cambiar las imágenes y usar las tuyas.
- Dar puntos extra si se destruyen ladrillos rápidamente, varios seguidos (u otras bonificaciones que elijas).
- Crear niveles con distintas distribuciones de ladrillos.
Incluso puedes intentar extraer las partes reutilizables de este proyecto y crear tu propio motor de juegos, como Phaser.
También puedes volver a la página de inicio de esta serie de tutoriales.