import { IState } from "./IState"; /** * 状态基类 * 提供状态接口的基础实现 */ export abstract class BaseState implements IState { /** * 状态所属的状态机 */ protected _fsm: any; /** * 状态名称 */ public readonly name: string; /** * 构造函数 * @param fsm 状态所属的状态机 * @param name 状态名称 */ constructor(fsm: any, name: string) { this._fsm = fsm; this.name = name; } /** * 进入状态 * 子类可以重写此方法来实现自定义逻辑 * @param params 可选参数 */ onEnter(params?: any): void { console.log(`[FSM] 进入状态: ${this.name}`, params || ''); } /** * 更新状态 * 子类可以重写此方法来实现每帧更新逻辑 * @param dt 距离上一帧的时间增量(秒) */ onUpdate?(dt: number): void { // 子类可选择实现 } /** * 退出状态 * 子类可以重写此方法来实现清理逻辑 */ onExit(): void { console.log(`[FSM] 退出状态: ${this.name}`); } }