Tutorial creado por Indierama
Voy a empezar una serie de apuntes basada en tutoriales de un solo vídeo, centrados en cómo crear juegos sencillos. La verdad, con esto debería haber comenzado el blog, como una especie de introducción... pero bueno, ya está hecho.
Hoy veremos cómo se hace un Pong, con sus distintos componentes. Aunque el tutorial está pensado como introducción a Godot —y por eso es bastante largo— me parece válido como contenido para una entrada de apuntes y para afianzar mis conocimientos de Godot. Así que, sin más preámbulos, ¡Al turrón!
Empezaremos por lo básico: modificaremos el viewport a 1280x720.
A diferencia del tutorial, y como ya es costumbre, vamos a crear todas las escenas y sus respectivos scripts antes de montar el tablero. De este modo, evitamos saltar de una escena a otra innecesariamente cuando se puede dejar todo listo de una vez.
Primero crearemos la escena del jugador (Player), que será la paleta controlada por el usuario
A continuación, le adjuntaremos el script que permitirá mover la paleta.
Después pasamos a la escena de la pelota (Ball, un CharacterBody2D): cargamos el sprite y colocamos una colisión circular por encima (CollisionShape2D con forma de círculo).
Le añadiremos el script correspondiente para su funcionamiento.
Ahora clonaremos la escena del Player para crear la escena Computer. Cambiaremos el sprite de la paleta y eliminaremos el script original para asignarle uno nuevo.
La escena Computer, con el sprite modificado y el script retirado.
Pasamos al nuevo script: la inteligencia de esta paleta consiste en seguir la pelota en el eje Y. Cuanto más rápida sea, más difícil será marcarle un gol.
Seguimos con la escena principal del tablero (Node2D). Lo primero será incorporar las escenas ya creadas.
Después definiremos los límites superior e inferior usando dos StaticBody2D
, para evitar que la pelota se salga de la escena.
En los laterales colocaremos un Area2D
, que servirá para detectar cuando la pelota los atraviesa.
Es importante que los StaticBody2D
y los Area2D
no se toquen, para evitar activaciones accidentales del área.
Finalmente, añadiremos los label para mostrar la puntuación del jugador y del ordenador. También agregaremos una línea divisoria como decoración central del campo.
La configuración de los Label será la siguiente:
Antes de comenzar a programar el script del tablero, conectaremos los Signals de los Area2D (GoalLeft y GoalRight) al script correspondiente.
Ahora sí, empezamos a escribir el código del tablero.
Algo que noto en muchos tutoriales de Pong o Arkanoid es que no se suele tener en cuenta un detalle importante: evitar que la paleta se desplace al recibir un golpe lateral de la pelota.
Por ahora, la solución más sencilla sería fijar su posición con una línea en el script que mantenga la paleta en su eje correspondiente: la coordenada Y en Pong y la X en Arkanoid. Esto impide que la paleta sea empujada, aunque personalmente no me convence del todo, ya que deja un efecto de rebote un poco raro en el juego.
No hay comentarios:
Publicar un comentario