lunes, 9 de junio de 2025

Pagina 46: Apuntes de "How to Make a Bullet Hell Game in Godot [P5] - Player Shooting and Health System "

Lista de reproducción completa del tutorial de Godot sobre cómo crear un bullet hell en Godot, creada por TheBuffED

https://www.youtube.com/watch?v=NMNl9Ix6ng8&list=PLvN5Z3tTxXECLLXBLSxJ_KzeJuwlt1r4q 

En esta parte del tutorial, vamos a modificar el respawn para que los enemigos aparezcan uno a uno, en lugar de que los diez aparezcan de golpe. También incorporaremos un sistema de vidas para el jugador, permitiendo que reciba daño y mostrando un mensaje con el estado de su 'nave'. Además, añadiremos la funcionalidad para que el jugador pueda disparar proyectiles

Voy a dividir esta página de apuntes en tres partes, tratándolas como si fueran apuntes de tres vídeos distintos dentro de una misma entrada, un tres por uno.

Respawn de enemigos

Empezamos modificando el script del enemigo, en esta modificación, lo mas destacable que se agrega, es que ahora el enemigo desaparecerá de la escena una vez que este fuera del viewport.

 

Agregaremos la variable type en el script de la escena Player.


 Ahora, antes de ponernos a modificar el EnemySpawner de la escena Game, vamos agregar un timer.

 

Vamos incorporar el signal timeout en el script de EnemySpawner.


 Modificaremos el script de EnemySpawner para que los enemigos empiecen aparecer cada X segundos.

 

Sistema de vida

Vamos a empezar a crear el sistema de vidas, el cual estará representado por una serie de mensajes que describen el estado de la "nave".

Vamos agregar un nodo Label en escena Game.

 

 Expandiremos el nodo label por todo el viewport.

 Y ahora modificaremos el inspector del label.

 

Así debería verse la escena Game.

 

Vamos a agregar los diferentes mensajes en un array, que pondremos en el script de la escena Game


Ahora, en el script del Player, agregaremos la variable Health y agregaremos una función que accederá al array de Health_Status de Game, usaremos la variable Health como indice.

 

Vamos actualizar el script de bullet y aprovecharemos para hacer que cada proyectil reduzca la vida del player.

En esta parte hice algunos cambios: como los arrays empiezan en 0 y no en 1, tuve que restar 1 en el script del jugador. De lo contrario, tal como está en el tutorial, se mostraría dos veces el mensaje "YOUR SHIP IS AT FULL HEALTH", ya que está en el índice 4. Por el mismo motivo, también evité que se siga restando vida cuando el jugador tiene menos de una vida, para evitar errores por salirme del array.

No tengo ni la menor remota idea de porque le funciona y para este curso, no estoy escuchando mucho las explicaciones,  parece que en Godot 3 los arrays empiezan por el indice 1.

Disparar proyectiles.

Vamos a duplicar la escena Bullet en una nueva escena llamada P_Bullet, esto serán las balas que dispare el jugador.

 

Renombramos el nodo padre para evitar liarnos entre las balas del enemigo y el jugador.

También clonaremos el script y lo asociaremos con esta escena, no queremos que las balas del jugador y el enemigo comparta script.


Vamos a re-colorear la bala de cualquier otro color usando self modulate, para diferenciarlo de los proyectiles enemigos.


Ahora si, vamos a modificar el script de P_Bullet, para que las balas vayan hacia arriba, todo lo contrario de lo que haría una bala enemiga.

  

Para que el jugador pueda disparar, primero agregaremos el input Shoot.


 Y finalmente modificaremos el script para que el jugador pueda disparar.

 

Pues ya esta,es aquí es donde acaba la esta serie y no parece que el tutorial vaya a seguir, la ultima parte ya tiene cuatro años.


Lo que todavía no se han acabado son los tutoriales, voy hacer varios tutoriales pequeños antes de ponerme con otra serie larga como la de como hacer un A-RPG.

Yabadupsia !

No hay comentarios:

Publicar un comentario

Archivo del blog