Main.ts 2.39 KB
import GameConfig from "./GameConfig";
import AdManager from "./sdk/AdManager";
import RedpacketModel from "./sdk/model/RedpacketModel";
import AppSdk from "./sdk/AppSdk";
class Main {
	constructor() {
		//根据IDE设置初始化引擎		
		if (window["Laya3D"]) Laya3D.init(GameConfig.width, GameConfig.height);
		else Laya.init(GameConfig.width, GameConfig.height, Laya["WebGL"]);
		Laya["Physics"] && Laya["Physics"].enable();
		Laya["DebugPanel"] && Laya["DebugPanel"].enable();
		Laya.stage.scaleMode = GameConfig.scaleMode;
		Laya.stage.screenMode = GameConfig.screenMode;
		Laya.stage.alignV = GameConfig.alignV;
		Laya.stage.alignH = GameConfig.alignH;
		//兼容微信不支持加载scene后缀场景
		Laya.URL.exportSceneToJson = GameConfig.exportSceneToJson;

		//打开调试面板(通过IDE设置调试模式,或者url地址增加debug=true参数,均可打开调试面板)
		if (GameConfig.debug || Laya.Utils.getQueryString("debug") == "true") Laya.enableDebugPanel();
		if (GameConfig.physicsDebug && Laya["PhysicsDebugDraw"]) Laya["PhysicsDebugDraw"].enable();
		if (GameConfig.stat) Laya.Stat.show();
		Laya.alertGlobalError = true;

		//激活资源版本控制,version.json由IDE发布功能自动生成,如果没有也不影响后续流程
		Laya.ResourceVersion.enable("version.json", Laya.Handler.create(this, this.onVersionLoaded), Laya.ResourceVersion.FILENAME_VERSION);
	}

	onVersionLoaded(): void {
		//激活大小图映射,加载小图的时候,如果发现小图在大图合集里面,则优先加载大图合集,而不是小图
		Laya.AtlasInfoManager.enable("fileconfig.json", Laya.Handler.create(this, this.onConfigLoaded));
	}

	onConfigLoaded(): void {
		this.initSdk();
		this.loadData();
	}

	/**初始化SDK */
	private async initSdk() {
		if (AppSdk.I.isMyBridge) {
			AppSdk.init()
			await AppSdk.I.initSdk();
			this.toggleScene();
		} else {
			Laya.timer.once(100, this, this.initSdk);
		}
	}

	private loadData() {
		// 处理游戏加载

		//加载完成
		this.toggleScene();
	}

	private checkLoad: number = 0;
	private toggleScene() {
		//加载IDE指定的场景
		this.checkLoad++;
		if (this.checkLoad < 2) {
			return
		}
		AppSdk.I.hideSplash();//隐藏加载页 可根据需求放到其他位置
		GameConfig.startScene && Laya.Scene.open(GameConfig.startScene);
	}
}
//激活启动类
new Main();