miércoles, 30 de abril de 2025

Página 29: Apuntes de "How to CHANGE SCENES in Godot | ARPG S02E02 "

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 de apuntes nos centraremos en cómo implementar la lógica necesaria para que el personaje pueda realizar transiciones entre distintas escenas del juego, permitiendo así el cambio de zonas o mapas de forma dinámica.
El videotutorial es muy útil como material educativo, pero resulta algo caótico como referencia para aplicarlo en otros proyectos, ya que se hacen muchos cambios dentro de los diferentes scripts de este video-tutorial. Por eso, seguiré un orden completamente diferente, pensado para que sea más claro y útil como guía de consulta en el futuro o como apoyo para otros desarrollos.
 
Vamos a empezar con lo mas fácil y rápido de hacer, vamos agregar los tilesets de las paredes, interiores y la casa.
 
 
 
 
Creamos el Tile de la casa, dejamos Y Sort Origin a 24.
 

 
Le agregamos colisiones. 

 
 
Agregamos una nueva capa al TileMap para las construcciones.
 
 
 
Vamos modificar el script del Player y agregarle un class_name.
 


Creamos un script independiente llamado Scene_Manager
 

 
He modificado el script mostrado en el video-tutorial, para que la interfaz gráfica y la cámara, también se pase a la nueva escena junto al jugador.
 
Agregamos Scene_Manager al Autoload.
 

 
 
Pasamos el jugador y su camara2D como hijos de la escena del World.tscn.
 

 
Modificamos script, de la camara2D FollowCamera.
 

 
Activamos CanvasItem > Ordering > Y Sort Enabled de la escena World.
 

 
Creamos otro script independiente, llamado Base_Scene, los scripts que formen parte del mundo del juego, como World o el interior de la casa, extenderán de esta clase.
 

 
Modificamos el script del World, vamos
 


Ahora crearemos una escena compuesta exclusivamente por un Area2D. Esta escena se llamará scene_trigger y se utilizará como disparador para enviar un aviso al Scene_Manager, indicando que debe mover al jugador a otra escena. La usaremos situandolas en las entradas y salidas de los distintos mapas.
 
 
 
Adjuntamos el script y crearemos una señal del tipo body_entered. Hay que crearla desde la pestaña Node, situada en el panel lateral por defecto.
 
 
 
Creamos la capa Triggers.
 

 
Aplicamos la mascara en el SceneTrigger.
 
 
 
Y ahora la aplicamos la capa al nodo padre del player.
 

 
Creamos la escena InsideHouse, vamos a describir un poco la escena.
 
 

La escena tendrá asociado el script Base_Scene .
 
EntranceMarkers es el contenedor que agrupa los Marker2D por donde puede aparecer el jugador al entrar en escena. Por defecto, el jugador aparecerá en el marcador llamado Any.
 
A la escena SceneTrigger le agregaremos un CollisiónShape2D para indicar el área del disparador.
 
Finalmente, indicaremos la escena donde nos llevara, que sera el nombre
 
 
Ahora vamos a volver a la escena World, vamos agregar el Tile de Casa y agregarle una entrada a Interior_House 
 
 
 
Para que el jugador pueda aparecer donde entro al salir de Inside_House, el marker2D debe tener el mismo nombre que la escena, por lo que si en esta escena me hubiera equivocado poniendo mal el nombre y no hay ningún marker2D llamado any, el jugador se movería a las coordenadas x e y que estuviera al activar el scene_trigger
 
 
 
Y eso es todo. Ha quedado algo largo, pero al menos mucho más claro para consultar en el futuro. Este videotutorial fue uno de los que me hizo darme cuenta de que necesitaba crear apuntes para poder aprender Godot, ya que, si te quedas solo con el video, todo parece mucho más extenso y complicado de lo que realmente es.

No hay comentarios:

Publicar un comentario