miércoles, 2 de abril de 2025

Página 17: Apuntes de "How to make an ARPG in Godot 4.1 #18: Picking up 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 este video-tutorial, se enseña como agregar objetos al mapa para que el jugador pueda recogerlos.

Como ya esta siendo costumbre, vamos a empezar actualizando el script del jugador.

Agregamos una nueva variable que haga referencia a la hurtbox y actualizaremos la función _physics_process.


Ahora las funciones _on_hurt_box_area_entered y _on_hurt_box_area_exited ya no nos hace falte, podemos desconectar estos signals o borrando su contenido.

 

Ahora vamos a empezar a crear los coleccionables.

Empezaremos creando una escena que sera un Area2D con un sprite2D y CollisionShape2D.

 

Vamos darle una forma al CollsionShape2D y activar CollisionShape2D > Shape > Resource > Local to scene

 

Le agregaremos cargaremos un script a la escena, de momento solo sera esto.

collectable.gd

Guardamos la escena como Collectable. Todos los ítems de nuestro juego serán nuevas escenas que heredarán de esta clase que hemos creado.escenas que heredaran de esta clase que hemos creado. 

Crearemos el primer item, vamos a Scene > New Inheritd Scene y seleccionamos la escena que hemos creado.

 

Cargamos la imagen para el Sprite2D y le damos la forma al collisionShape2D, esta escena es la que utilizaremos para agregarla a la escena del mundo, el jugador interactuara con escenas hijas de Collectable.tscn

 

Para que el jugador pueda interactuar con los items, vamos a actualizar la clase _on_hurt_box_area_entered   

Player.gd
 
Vamos a crear otra escena heredada de collectable, esta escena tendra una animación para cuando sea recogida.
El proceso es el mismo, esta vez agregaremos un nodo AnimationPlayer
 
 
Usaremos la propiedad Node2D > Transform > Rotation para hacer la animación.
 
El nodo pasara de 0º a 360º
 

 
Nos toca modificar el script para que haga la animación, primero tendremos que retirar el script heredado de la escena padre y le adjuntaremos su propio script.
sword.gd

 
Una vez guardemos la escena, vamos al TileMap de la escena del Mundo.
 
Vamos a la pestaña tileSet, pulsamos el + y escogemos la opción Scenes Collection.

Usaremos el campo name para cambiar el nombre del TileSource.

 
 Arrastramos el item a la escena
 

 
Finalmente, crearemos una nueva layer para los coleccionables en el TileMap, los items se agregan de la misma forma que los elementos del escenario, a estas alturas no tiene misterio.
 
Voy a empezar a hacer un diagrama, porque a partir de la siguiente página de apuntes comenzaremos con el inventario, y el tema puede volverse un poco complicado.
 
De momento es fácil y simple de entender.

No hay comentarios:

Publicar un comentario

Archivo del blog