viernes, 11 de abril de 2025

Página 21: Apuntes de "How to Make an Inventory in Godot 4.1 #22 Part 4: stacking items"

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

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

 

En la pagina de hoy, vamos a repasar como hacer que los items que recojamos hagan stack en el inventario, veremos como guardarlo internamente y mostrarlo por la pantalla de inventario.

Vamos empezando creando un nuevo script de tipo resource llamado InventorySlot.
 
 
 
Ahora le haremos un cambio mayor al script de Inventory, entre los cambios tenemos que el array que tenia la clase, guarda instancias de InventorySlot en lugar de InventoryItems.
 

Tras este cambio, el inventario.tres se habrá reiniciado debido a que hemos cambio el tipo información que guardaba, nos toca volver a crear todas las posiciones e iniciar cada una de ellas.

 

Antes de ponernos a modificar el script de SlotGUI, vamos a agregar una Label para el contador de ítems en el stack. 

 

Ahora nos toca modificar el inspector de esta label que hemos creado.

  1. Vamos a poner un 99 a modo de placeholder en Label > Text.
  2. Seleccionar Right en Label > Horizontal Alignment

 

  1. En Control > Theme Overrides > Colors, seleccionaremos un color blanco para el color de la letra y un color negro para Font Shadow Color, esto dejara una sombra como bien dice su nombre.
  2. Activaremos y arrastraremos la fuente en Control > Theme Overrides > Fonts.
  3. Picaremos el checkbox de Control > Theme Overrides > Font Sizes y lo dejaremos en 8px.

  1. Modificaremos Control > Layout Custom Minimum Size y Control > Layout > Transform > Size a (x=11px,y=14px).
  2.  Pondremos a Control > Layout > Transform > Position en (x=-2,y=-1)
 
 
 Si lo hemos hecho todo bien, debería verse así nuestra escena SlotGUI
 
 
 
Modificamos el script de SlotGUI.
 

 
Actualizamos la función Update de InventoryGUI para adaptarla al nuevo tipo de variable que estamos trabajando con el inventario.
 

 
Nota a considerar, el ítem Sword al que le pusimos una animación, no contara el item hasta que termine su animación y desaparezca.
 
En capitulo del video-tutorial, MakerTech nos propone dos tareas para mejorar este código.
  1. Hacer que cuando en el slot solo tenga un ítem, el numero no se vea.
  2. Hacer un limite de stack, que no se pueda acumular mas de 10 item de un tipo en una casilla, como pista, nos indicado agregar una nueva variable en el Resource InventoryItem.
 
 
Por suerte, el diagrama ha dejado de crecer en esta página.
 
 

No hay comentarios:

Publicar un comentario

Archivo del blog