viernes, 2 de mayo de 2025

Página 30: Apuntes de "How to USE ITEMS from HOTBAR in GODOT | ARPG S02E03 | tutorial | GDScript "

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 página vamos a implementar un selector para la hotbar del juego, permitiendo al jugador moverse entre los distintos ítems disponibles. Además de mostrar cómo desplazar el selector, también explicaremos cómo empezar a darles funcionalidad real a los ítems. Como ejemplo, usaremos un ítem curativo que, al seleccionarse y usarse, regenerará un corazón de vida del personaje

Vamos a empezar cambiando el HboxContainer por un panel, para eso creamos un nodo panel en la escena, le hacemos clic derecho y seleccionamos "Make Scene root"

 
Hacemos unos cuantos cambios en los nombres y por supuesto, pasamos el script de Hotbar al nuevo nodo padre.
 
  
 
 Expandimos el área del nodo panel.
 

 
 
 Para colocar el panel a la izquierda, primero modificamos el Anchor Preset en el inspector, cambiándolo de Top Left a Top Right, y luego volvemos a seleccionar Top Left. Esto permite que el panel se reposicione correctamente."
 

Hacemos trasparenta el fondo del panel.


Agregamos el nodo Sprite2D del selector.
 


Desactivamos Sprite2D > Offset > Centered.


Agregamos dos nuevos inputs, use_item ( U ) y move_selector (Tab)
 


Actualizamos el script de HotBar.
 

 
Hotbar contiene funciones que hacen referencia al script Inventory, pero algunas de ellas todavía no existen. Por eso, vamos a reformar nuevamente gran parte del código en Inventory. Las funciones insertSlot y removeSlot volverán a sufrir cambios, esta vez con el objetivo de actualizar el Hotbar cada vez que haya modificaciones en el inventario, y también para que el inventario se actualice correctamente cuando se consuma un ítem.


Hasta ahora no contemplábamos que los ítems pudieran desaparecer del inventario, aunque el ítem no este en el array, lo sigue mostrando, vamos hacer una serie de pasos para corregir este problema

Empezaremos actualizando SlotGUI, ahora no hace falta borrar el ItemStackGUI ya que ahora se encarga Inventory de hacerlo, debido a que recibe un signal de Inventory.


 Actualizamos Inventory, la función update ahora también se encargará de borrar el contenido de los slots cuyos ítems hayan sido consumidos.


Hasta ahora, los ítems se usan/consumen pero lo único que hacen es desaparecer, asi que vamos hacer que LifePot curen al jugador.
 
 Actualizamos inventoryItem.

 Creamos un script independiente, llamado HealthItem.

Lo asociamos al script con el LifePot.tres.

 

Actualizamos el script del Player


Y eso es todo por hoy. La verdad es que, comparado con los apuntes desordenados en Word que tengo en local, ya no intimida tanto.

Propuestas de mejoras.

- El selector solo pasa por las casillas que tienen un item.

- Crear nuevos items funcionales.

- Crear un item que no se consuma.

No hay comentarios:

Publicar un comentario

Archivo del blog