状态事件
Estimated reading time: 4 minutes状态事件模块 (StateEvents) 是动态管理系统的一部分,用于处理游戏中的状态触发事件。框架会自动在段落开始和结束时检查并触发相应的事件。
可通过 maplebirch.dynamic.State 或快捷接口 maplebirchFrameworks.addStateEvent() 访问。
核心 API
regStateEvent(type, eventId, options)
注册一个新的状态事件。
- @param
type(string): 事件类型,支持'interrupt'(中断)或'overlay'(覆盖) - @param
eventId(string): 事件唯一标识符 - @param
options(StateEventOptions): 事件配置选项 - @return
boolean: 是否成功注册
delStateEvent(type, eventId)
注销已注册的状态事件。
trigger(type)
手动触发状态事件:
事件配置选项
output 参数说明
output 字符串对应您在 SugarCube 中自定义的 widget 宏名称。当事件触发时,框架会调用对应的 widget 宏。
Widget 定义示例:
完整示例:中断事件
完整示例:覆盖事件(状态提示)
事件类型
注意事项
- Widget 定义:必须在游戏中定义与
output同名的 widget - 性能考虑:widget 内容不应过于复杂,避免影响游戏性能
- 稳定性:确保 widget 在各种情况下都能正确显示
- 错误处理:如果找不到对应的 widget,框架会记录错误日志
