本篇博客将介绍下框架的启动流程和注意事项项目,用于了解和学习框架。
项目启动流程
在oops-game-kit 或 oops-framework 的脚本目录下: script/game/initialize
中,此处的代码主要主要项目的启动,主要代码文件有:
- Initalize.ts 游戏初始化入口,用于加载公共资源和热更新
- bll/InitRes.ts 用于初始化公共资源,也就是项目启动前加载的必备资源
- view/LoadingViewComp.ts 游戏动态资源的加载
InitRes.ts 在项目启动时加载的必备资源路径在bundle/common
中,资源越少,黑屏时间越短。
LoadingViewComp.ts 动态加载的资源路径在bundle/game
中,资源越多,Loading页面显示时间越长。
注:Loading页面就相当于对资源的预加载,避免游戏启动成功后进入各种页面显示卡顿。
我们分别说明下这几处代码的主要逻辑相关;
Initalize.ts
@ecs.register('Initialize')
export class Initialize extends ecs.Entity {
protected init() {
// 初始化游戏公共资源
this.add(InitResComp);
}
}
export class EcsInitializeSystem extends ecs.System {
constructor() {
super();
this.add(new InitResSystem());
}
}
项目采用的框架是 ECS 框架,也就是:Entity-Component-System(实体-组件-系统)框架。
更多内容可参考: ECS简介
这里我们只需要关注InitResComp
即可,它会调用InitRes.ts
进行项目启动是公共资源的初始化。
InitRes.ts
此处代码的主体是:
entityEnter(e: Initialize): void {
var queue: AsyncQueue = new AsyncQueue();
/\*\* 加载远程资源配置 \*/
this.loadBundle(queue);
// 加载自定义资源
this.loadCustom(queue);
// 加载多语言包加载多语言包
this.loadLanguage(queue);
// 加载公共资源
this.loadComm