Loading repository data…
Loading repository data…
findemor / repository
Ejemplos de maquinas de estados en Godot
Este repositorio contiene varios ejemplos de implementación de máquina de estados finitos en Godot. La explicación completa la puedes encontrar en el video tutorial del enlace: https://youtu.be/bX-C6C03Jnc
La escena principal está en level\test_level.tscn
El personaje (escena player\player.tscn) se controla mediante un componente llamado PlayerControl.
En este proyecto encontrarás 3 implementaciones diferentes de ese componente:
Lo encontrarás en la carpeta player_control\spaghetti
Este es solo un ejemplo de control basico, y el codigo enrevesado de flags que podría ocurrir si no usas ningún patrón de programación (ej. sin máquina de estados). En el video lo puedes encontrar explicado a partir del minuto 2:51
Para usarlo, simplemente reemplaza el componente PlayerControl de la escena del Player, por este: player_control\spaghetti\player_control.tscn
Lo encontrarás en la carpeta player_control\fsm\simple
Este es un ejemplo de máquina de estados finitos muy básica, en un unico fichero. En el video lo puedes encontrar explicado a partir del minuto 7:31
Para usarlo, simplemente reemplaza el componente PlayerControl de la escena del Player, por este: player_control\fsm\simple\player_control.tscn
Lo encontrarás en la carpeta player_control\fsm\avanzado
Este es un ejemplo de máquina de estados finitos más avanzada.
Tiene tanto el código del componente reutilizable, que puedes usar como máquina de estados para cualquier cosa (player_control\fsm\avanzado\state_machine.tscn) como la implementacion de algunos estados concretos para controlar al player (player_control\fsm\avanzado\player_states)
Utiliza herencia como ejemplo sencillo de máquina de estados jerarquica, separando en distintas clases los elementos comunes. En el video lo puedes encontrar explicado a partir del minuto 11:49
Es el componente PlayerControl que encontrarás preparado al ejecutar el proyecto. Verás que se trata de la máquina de estados generica reutilizable, y dentro (como nodos hijos) se colocan los estados especificos que quieras crear.
El personaje de este proyecto es diferente (es una versión simplificada) del que se muestra en el video. El sprite que se usa en este proyecto es obra de Kenney, y lo puedes encontrar en su web: https://www.kenney.nl/
Puedes usar este código para lo que te de la gana sin necesidad de atribución de ningún tipo.