miércoles, 7 de mayo de 2025

Pagina 32: Apuntes de "Reusable COMPONENTS in Godot | ARPG S02E05"

Lista de reproducción completa del tutorial de Godot sobre cómo crear un Action-RPG en Godot, creada por MakerTech

Season 1

https://www.youtube.com/playlist?list=PLMQtM2GgbPEVuTgD4Ln17ombTg6EahSLr 

Season 2

https://www.youtube.com/playlist?list=PLMQtM2GgbPEWCCJG8xywVPrOBcU6KpcNq

En esta pagina de apuntes, vamos a crear un componentes reutilizables: un script que se puede añadir como nodo a distintas escenas para aplicar un comportamiento común. Esta técnica es útil para organizar mejor el proyecto y evitar repetir código cuando varios nodos comparten la misma lógica.

 

Vamos usar la escena Slime para mostrar una referencia de como crear nuevos componentes.

Vamos hacer componentes del movimiento, hurtbox y health del Slime.

Los componentes se crean como scripts independientes normales.

Script:

MarkerMovementAIC

HurtBoxC: añado la variable a la función collision. No sé cómo hace MakerTech para enlazar funciones sin que le dé problemas al no incluir la variable. areaVar es el nodo que ha entrado en contacto, como puede ser el jugador, su espada u otro enemigo.

 

 HealthC

 

El script  Slime deberia quedar asi.

 

Estos scripts que hemos creado aparecerán como nodos en "Create New Node". Vamos a añadirle al slime estos tres nuevos componentes.

 

Actualizamos los inspectores de estos componentes.

HurtBoxC

 

 HealthC

 

Creamos un signal del componente conectado a la funcion is_death del script del nodo padre.


MarkerMovementAIC

 

Borramos el Signal del nodo Hurtbox.


Para arreglar posibles problemas con las hitboxes, vamos a crear la capa PlayerWeapon para la mascara de Hurtbox del Slime.


 

Modificamos la capa de la espada del Player.

 

He hecho un apaño a la función hurtByEnemy del Player, evitando que el enemigo te haga daño mientras esta reproduciendo la animación de muerte, por algún motivo vuelve hacer daño la animación de muerte del enemigo.

 

Y aqui acabamos, como ejercicio de practica, podemos crear componentes para el resto de funciones del Slime o el Player.

No hay comentarios:

Publicar un comentario