# godotfsmtest **Repository Path**: J_Sky/godotfsmtest ## Basic Information - **Project Name**: godotfsmtest - **Description**: 本项目演示了如何在 Godot 4.4 中实现一个简单的有限状态机(FSM)来控制 2D 角色的行为。通过 FSM,我们可以清晰地管理角色的不同状态(如空闲、移动、跳跃、攻击)及其之间的转换。 - **Primary Language**: 其他 - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-15 - **Last Updated**: 2026-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Godot4.4 有限状态机简单案例 ## 项目概述 本项目演示了如何在 Godot 4.4 中实现一个简单的有限状态机(FSM)来控制 2D 角色的行为。通过 FSM,我们可以清晰地管理角色的不同状态(如空闲、移动、跳跃、攻击)及其之间的转换。 ## 素材来源 素材来源:https://xzany.itch.io/free-knight-2d-pixel-art ## 状态机结构 ### 核心脚本 - `State.gd`: 所有状态的基类,定义了状态的基本接口(enter, exit, update, physics_update)和转换信号。 - `StateMachine.gd`: 状态机管理器,负责状态的注册、切换和更新。 ### 具体状态 - `Idle.gd`: 空闲状态,处理角色站立时的逻辑和到其他状态的转换(移动、跳跃、攻击)。 - `Move.gd`: 移动状态,处理角色行走时的逻辑和到其他状态的转换(空闲、跳跃、攻击)。 - `Jump.gd`: 跳跃状态,处理角色在空中的移动和到其他状态的转换(落地后转为空闲或移动)。 - `Attack.gd`: 攻击状态,处理角色攻击时的逻辑和动画播放。 ### 控制输入 项目中定义了以下输入映射: - `move_left`: A 键 - `move_right`: D 键 - `jump`: 空格键 - `attack`: J 键 ## 如何运行 1. 使用 Godot 4.4 打开项目。 2. 运行 `main.tscn` 场景。 3. 使用 A/D 键移动,空格键跳跃,J 键攻击。