Files
rougelike-demo/client/assets/scripts/App/AppStatus/AppStatusBoot.ts
2025-12-14 22:41:10 +08:00

62 lines
1.7 KiB
TypeScript

import { BaseState } from "../../Framework/FSM/BaseState";
import { NetManager } from "../../Framework/Net/NetManager";
/**
* 应用启动状态
* 职责:
* - 初始化游戏引擎
* - 加载基础配置
* - 初始化网络管理器
* - 准备第一个UI界面
*/
export class AppStatusBoot extends BaseState {
constructor(fsm: any) {
super(fsm, "Boot");
}
/**
* 进入启动状态
*/
async onEnter(params?: any): Promise<void> {
super.onEnter(params);
console.log("[AppStatusBoot] 开始初始化应用...");
try {
// 1. 初始化并连接网络
await this.initAndConnectNet();
// 2. 初始化完成,切换到登录状态
console.log("[AppStatusBoot] 启动完成,切换到登录状态");
this._fsm.changeState("Login");
} catch (error) {
console.error("[AppStatusBoot] 初始化失败:", error);
}
}
/**
* 初始化并连接网络
*/
private async initAndConnectNet(): Promise<void> {
console.log("[AppStatusBoot] 初始化网络管理器...");
// TODO: 从配置文件读取服务器地址
// import { serviceProto } from '../../Shared/protocols/serviceProto';
// const netManager = NetManager.getInstance();
// netManager.setServiceProto(serviceProto);
// netManager.init({ serverUrl: 'http://localhost:3000' });
// await netManager.connect();
console.log("[AppStatusBoot] 网络连接完成(待配置)");
}
/**
* 退出启动状态
*/
onExit(): void {
super.onExit();
console.log("[AppStatusBoot] 离开启动状态");
}
}