# 状态机插件使用文档 ## 简介 状态机插件提供了一套完整的有限状态机系统,用于管理对象的不同状态和状态之间的转换。状态机是一种常用的编程模式,特别适用于管理游戏角色的行为状态。 ## 核心概念 ### 状态(State) 状态表示对象在特定时刻所处的状况。每个状态都有三个主要方法: - `enter(context)`:进入状态时调用 - `execute(context)`:执行状态逻辑时调用 - `exit(context)`:退出状态时调用 ### 状态机(StateMachine) 状态机负责管理当前状态和状态转换。主要功能包括: - 状态切换 - 状态更新 - 状态历史记录 ### 状态转换(Transition) 状态转换定义了从一个状态到另一个状态的条件和规则。 ## 使用方法 ### 1. 加载和启用插件 ```python # 在主程序中加载插件 plugin_manager.load_plugin("state_machine") plugin_manager.enable_plugin("state_machine") # 获取插件实例 sm_plugin = plugin_manager.get_plugin("state_machine") ``` ### 2. 创建状态 ```python from plugins.user.state_machine import State class IdleState(State): def enter(self, context): print("进入空闲状态") def execute(self, context): print("执行空闲状态逻辑") # 返回下一个状态,如果为None则保持当前状态 return None def exit(self, context): print("退出空闲状态") ``` ### 3. 创建状态机 ```python # 创建状态机 state_machine = sm_plugin.create_state_machine("ai_state_machine") # 创建上下文 context = {"data": {}} # 设置状态机上下文 state_machine.set_context(context) # 创建状态实例 idle_state = IdleState("Idle") # 切换到初始状态 state_machine.change_state(idle_state) ``` ### 4. 更新状态机 ```python # 更新状态机 state_machine.update() ``` ## 示例 查看 `examples/ai_example.py` 文件了解完整的使用示例。