68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import { find } from "cc";
|
|
import { BaseState } from "../../Framework/FSM/BaseState";
|
|
import { NetManager } from "../../Framework/Net/NetManager";
|
|
import { UIMgr } from "../../Framework/UI/UIMgr";
|
|
|
|
/**
|
|
* 应用启动状态
|
|
* 职责:
|
|
* - 初始化游戏引擎
|
|
* - 加载基础配置
|
|
* - 初始化网络管理器
|
|
* - 准备第一个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 {
|
|
// 初始化UI
|
|
console.log("[AppStatusBoot] 初始化UI管理器...");
|
|
UIMgr.getInstance().setUIRoot(find("Canvas")!);
|
|
|
|
// 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] 离开启动状态");
|
|
}
|
|
}
|