Creando el marcador
Clase 14 de 17 • Curso Introductorio de Desarrollo de Videojuegos con Godot
Resumen
¿Cómo crear un marcador en nuestro juego de Pong?
Contar con un marcador es esencial para que un juego de Pong sea emocionante y competitivo, como lo era el Pong original lanzado por Atari hace cinco décadas. En esta guía, te enseñaremos a implementar un marcador en tu juego utilizando nodos de interfaz de usuario y scripts en Godot. ¡Comencemos!
¿Cómo adicionar un nuevo nodo para el marcador?
Para añadir un marcador a nuestro juego, primero debemos agregar un nodo de tipo interfaz de usuario. Esto se realiza mediante los siguientes pasos:
-
Agregar un nodo "Label": Este nodo nos permitirá incorporar texto en pantalla.
var marcador_player = Label.new()
-
Configurar propiedades del marcador:
- Cambia la alineación del texto a centrado tanto vertical como horizontalmente.
- Ajusta el tamaño del rectángulo para que coincida con la pantalla completa.
- Modifica la propiedad de 'merging left' a -200 para posicionarlo correctamente.
-
Personalizar la apariencia:
- Importa una fuente personalizada para mejorar la estética del marcador.
- Ajusta el tamaño de la fuente a 32 y selecciona un color adecuado como negro o naranja.
¿Cómo actualizar el marcador con el puntaje?
Con el marcador visualmente preparado, necesitamos actualizarlo con los goles anotados en el juego. Utilizaremos scripts para gestionar y mostrar correctamente el puntaje:
-
Declarar una variable para el puntaje:
- Crea una variable para almacenar el puntaje del jugador.
var player_score = 0
-
Actualizar el puntaje:
- Incrementar el puntaje cada vez que la pelota atraviesa el arco del oponente.
func update_score(): player_score += 1
-
Mostrar el puntaje en pantalla:
- Utiliza el método
Process
de Godot para actualizar el texto en cada frame. Convierte el valor numérico a una cadena de texto para mostrarlo.
func _process(delta): $label.text = str(player_score)
- Utiliza el método
¿Cómo solucionar problemas de conteo incorrecto de puntaje?
Un problema común es que el marcador puede iniciar con valores incorrectos debido a colisiones no deseadas. Aprendamos a corregirlo:
-
Evitar colisiones falsas: Asegúrate de que solo se cuenten los goles cuando el objeto que colisiona sea la pelota.
if body is Ball: update_score()
-
Definir el nodo de la pelota:
- Usa
class_name
para identificar claramente el nodo de la pelota.
class_name Ball
- Usa
¿Cómo implementar el marcador del oponente?
Replicar la lógica del marcador del jugador para el oponente es esencial para mantener el puntaje de ambos participantes. A continuación, se muestra cómo hacerlo:
-
Duplicar el nodo "Label" del jugador:
- Cambia el nombre y ajusta el
merging
para mostrar el marcador en la posición opuesta.
var marcador_oponente = Label.new()
- Cambia el nombre y ajusta el
-
Crear una variable y script para el puntaje del oponente:
- Actualiza el puntaje del oponente cada vez que la pelota atraviesa el arco del jugador.
var oponente_score = 0
Al seguir estos pasos y poner en práctica lo que hemos aprendido, habrás mejorado significativamente tu juego de Pong añadiendo marcadores funcionales. Este conocimiento te sobrecogerá con el poder de crear experiencias de juego más completas y envolventes. ¡Sigue explorando, aprendiendo y divirtiéndote con la programación de videojuegos!