Hugo Locurcio 2a962929f3 Update demo files for Godot 4.2.1 (#1013) 9 tháng trước cách đây
..
debug 3706e3e998 Map attack to gamepad X, revise text in Finite State Machine demo (#937) 1 năm trước cách đây
fonts e03d6abbc8 Update finite state machine demo for 4.0.rc4 (#850) 1 năm trước cách đây
player e03d6abbc8 Update finite state machine demo for 4.0.rc4 (#850) 1 năm trước cách đây
screenshots fcc7d5c723 Optimize PNG images using oxipng 4 năm trước cách đây
state_machine e03d6abbc8 Update finite state machine demo for 4.0.rc4 (#850) 1 năm trước cách đây
Demo.tscn 3706e3e998 Map attack to gamepad X, revise text in Finite State Machine demo (#937) 1 năm trước cách đây
README.md e03d6abbc8 Update finite state machine demo for 4.0.rc4 (#850) 1 năm trước cách đây
icon.webp 63d1cd9a60 Use 128×128 WebP icons for all demos (#885) 1 năm trước cách đây
icon.webp.import 63d1cd9a60 Use 128×128 WebP icons for all demos (#885) 1 năm trước cách đây
project.godot 2a962929f3 Update demo files for Godot 4.2.1 (#1013) 9 tháng trước cách đây

README.md

Hierarchical Finite State Machine

This example shows how to apply the State machine programming pattern in GDscript, including Hierarchical States, and a pushdown automaton.

Language: GDScript

Renderer: Compatibility

Check out this demo on the asset library: https://godotengine.org/asset-library/asset/516

Why use a state machine

States are common in games. You can use the pattern to:

  1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage.

  2. Respect the Single Responsibility Principle. Each State object represents one action.

  3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.

You can read more about States in the excellent Game Programming Patterns ebook.

Screenshots

Screenshot