Launcher.js
14.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/script/game/Launcher.js';
var __require = nodeEnv ? function (request) {
return cc.require(request);
} : function (request) {
return __quick_compile_project__.require(request, __filename);
};
function __define (exports, require, module) {
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
cc._RF.push(module, 'f191b3NyXtCubDaTGld/tHG', 'Launcher');
// script/game/Launcher.ts
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
const GameConfig_1 = require("../GameConfig");
const UIManager_1 = require("../common/gameplay/managers/UIManager");
const AnimationUtils_1 = require("../common/utils/AnimationUtils");
const PlotManager_1 = require("../avg/PlotManager");
const simba_sdk_1 = require("simba-sdk");
const GameModelManager_1 = require("./model/GameModelManager");
const MainViewPresenter_1 = require("./ui/presenter/MainViewPresenter");
const CCDummyObjects_1 = require("../common/CCDummyObjects");
const AudioManager_1 = require("../common/gameplay/managers/AudioManager");
const { ccclass, property } = cc._decorator;
let Launcher = /** @class */ (() => {
let Launcher = class Launcher extends cc.Component {
constructor() {
super(...arguments);
this.progressBar = CCDummyObjects_1.DummyProgressBar;
this.progressLabel = CCDummyObjects_1.DummyLabel;
this.uiRootNode = CCDummyObjects_1.DummyNode;
this.guideRootNode = CCDummyObjects_1.DummyNode;
this.VerbRoot = CCDummyObjects_1.DummyNode;
}
onLoad() {
let winSize = cc.winSize;
if (winSize.width / winSize.height > 720 / 1280) {
let canvas = this.node.getComponent(cc.Canvas);
canvas.fitWidth = true;
canvas.fitHeight = true;
}
//关闭fps展示
cc.debug.setDisplayStats(GameConfig_1.GameConfig.showFPS);
cc.macro.ENABLE_MULTI_TOUCH = false;
}
start() {
this.initializeGame();
}
async initializeGame() {
AudioManager_1.AudioManager.init("audio/bgm/", "audio/effect/", "audio/voice/");
await UIManager_1.UIManager.init(this.uiRootNode);
let mainViewPromise = UIManager_1.UIManager.pushPresenter(MainViewPresenter_1.default, undefined);
AnimationUtils_1.AnimationUtils.animateProgress(this.progressBar, 0.2);
let ret = false;
let tryCount = 0;
while (!ret && tryCount < 3) {
tryCount++;
ret = await simba_sdk_1.SDK.init();
}
if (!ret) {
// TODO show error alert
console.error("SDK init failed.");
return;
}
AnimationUtils_1.AnimationUtils.animateProgress(this.progressBar, 0.4, 1, this.progressLabel);
tryCount = 0;
while (1) {
try {
tryCount++;
await simba_sdk_1.SDK.login();
break;
}
catch (e) {
if (tryCount > 3) {
console.log("SDK login failed.");
return;
}
}
}
AnimationUtils_1.AnimationUtils.animateProgress(this.progressBar, 0.6, 1, this.progressLabel);
await PlotManager_1.PlotManager.init();
AnimationUtils_1.AnimationUtils.animateProgress(this.progressBar, 0.8, 1, this.progressLabel);
await PlotManager_1.PlotManager.start();
// init game data
await GameModelManager_1.GameModelManager.init();
AnimationUtils_1.AnimationUtils.animateProgress(this.progressBar, 1.0, 1, this.progressLabel);
await (await mainViewPromise).start();
this.node.getChildByName("Loading").active = false;
}
async startGame() {
}
};
__decorate([
property({ type: cc.ProgressBar, displayName: "进度条" })
], Launcher.prototype, "progressBar", void 0);
__decorate([
property({ type: cc.Label, displayName: "进度展示文本" })
], Launcher.prototype, "progressLabel", void 0);
__decorate([
property({ type: cc.Node, displayName: "UI根结点" })
], Launcher.prototype, "uiRootNode", void 0);
__decorate([
property({ type: cc.Node, displayName: "引导根结点" })
], Launcher.prototype, "guideRootNode", void 0);
__decorate([
property({ type: cc.Node, displayName: '转场根节点' })
], Launcher.prototype, "VerbRoot", void 0);
Launcher = __decorate([
ccclass
], Launcher);
return Launcher;
})();
exports.default = Launcher;
cc._RF.pop();
}
if (nodeEnv) {
__define(__module.exports, __require, __module);
}
else {
__quick_compile_project__.registerModuleFunc(__filename, function () {
__define(__module.exports, __require, __module);
});
}
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvZ2FtZS9MYXVuY2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUEyQztBQUMzQyxxRUFBa0U7QUFDbEUsbUVBQWdFO0FBQ2hFLG9EQUFpRDtBQUNqRCx5Q0FBZ0M7QUFDaEMsK0RBQTREO0FBQzVELHdFQUFpRTtBQUNqRSw2REFBbUY7QUFDbkYsMkVBQXdFO0FBR3hFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztBQUk1QztJQUFBLElBQXFCLFFBQVEsR0FBN0IsTUFBcUIsUUFBUyxTQUFRLEVBQUUsQ0FBQyxTQUFTO1FBQWxEOztZQUVJLGdCQUFXLEdBQW1CLGlDQUFnQixDQUFDO1lBRS9DLGtCQUFhLEdBQWEsMkJBQVUsQ0FBQztZQUdyQyxlQUFVLEdBQVksMEJBQVMsQ0FBQztZQUVoQyxrQkFBYSxHQUFZLDBCQUFTLENBQUM7WUFFbkMsYUFBUSxHQUFZLDBCQUFTLENBQUM7UUErRGxDLENBQUM7UUE3REcsTUFBTTtZQUNGLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDekIsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRTtnQkFDN0MsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDdkIsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDM0I7WUFDRCxTQUFTO1lBQ1QsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsdUJBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUN4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QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7bURBQ2Y7SUFFbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7OENBQ3BCO0lBWGIsUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQTBFNUI7SUFBRCxlQUFDO0tBQUE7a0JBMUVvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZUNvbmZpZyB9IGZyb20gXCIuLi9HYW1lQ29uZmlnXCI7XG5pbXBvcnQgeyBVSU1hbmFnZXIgfSBmcm9tIFwiLi4vY29tbW9uL2dhbWVwbGF5L21hbmFnZXJzL1VJTWFuYWdlclwiO1xuaW1wb3J0IHsgQW5pbWF0aW9uVXRpbHMgfSBmcm9tIFwiLi4vY29tbW9uL3V0aWxzL0FuaW1hdGlvblV0aWxzXCI7XG5pbXBvcnQgeyBQbG90TWFuYWdlciB9IGZyb20gXCIuLi9hdmcvUGxvdE1hbmFnZXJcIjtcbmltcG9ydCB7IFNESyB9IGZyb20gXCJzaW1iYS1zZGtcIjtcbmltcG9ydCB7IEdhbWVNb2RlbE1hbmFnZXIgfSBmcm9tIFwiLi9tb2RlbC9HYW1lTW9kZWxNYW5hZ2VyXCI7XG5pbXBvcnQgTWFpblZpZXdQcmVzZW50ZXIgZnJvbSBcIi4vdWkvcHJlc2VudGVyL01haW5WaWV3UHJlc2VudGVyXCI7XG5pbXBvcnQgeyBEdW1teUxhYmVsLCBEdW1teU5vZGUsIER1bW15UHJvZ3Jlc3NCYXIgfSBmcm9tIFwiLi4vY29tbW9uL0NDRHVtbXlPYmplY3RzXCI7XG5pbXBvcnQgeyBBdWRpb01hbmFnZXIgfSBmcm9tIFwiLi4vY29tbW9uL2dhbWVwbGF5L21hbmFnZXJzL0F1ZGlvTWFuYWdlclwiO1xuaW1wb3J0IHsgUmVzVXRpbHMgfSBmcm9tIFwiLi4vY29tbW9uL3V0aWxzL1Jlc1V0aWxzXCI7XG5cbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XG5cblxuQGNjY2xhc3NcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExhdW5jaGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5Qcm9ncmVzc0JhciwgZGlzcGxheU5hbWU6IFwi6L+b5bqm5p2hXCIgfSlcbiAgICBwcm9ncmVzc0JhcjogY2MuUHJvZ3Jlc3NCYXIgPSBEdW1teVByb2dyZXNzQmFyO1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkxhYmVsLCBkaXNwbGF5TmFtZTogXCLov5vluqblsZXnpLrmlofmnKxcIiB9KVxuICAgIHByb2dyZXNzTGFiZWw6IGNjLkxhYmVsID0gRHVtbXlMYWJlbDtcblxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLk5vZGUsIGRpc3BsYXlOYW1lOiBcIlVJ5qC557uT54K5XCIgfSlcbiAgICB1aVJvb3ROb2RlOiBjYy5Ob2RlID0gRHVtbXlOb2RlO1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLk5vZGUsIGRpc3BsYXlOYW1lOiBcIuW8leWvvOaguee7k+eCuVwiIH0pXG4gICAgZ3VpZGVSb290Tm9kZTogY2MuTm9kZSA9IER1bW15Tm9kZTtcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5Ob2RlLCBkaXNwbGF5TmFtZTogJ+i9rOWcuuagueiKgueCuScgfSlcbiAgICBWZXJiUm9vdDogY2MuTm9kZSA9IER1bW15Tm9kZTtcblxuICAgIG9uTG9hZCgpIHtcbiAgICAgICAgbGV0IHdpblNpemUgPSBjYy53aW5TaXplO1xuICAgICAgICBpZiAod2luU2l6ZS53aWR0aCAvIHdpblNpemUuaGVpZ2h0ID4gNzIwIC8gMTI4MCkge1xuICAgICAgICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuQ2FudmFzKTtcbiAgICAgICAgICAgIGNhbnZhcy5maXRXaWR0aCA9IHRydWU7XG4gICAgICAgICAgICBjYW52YXMuZml0SGVpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvL+WFs+mXrWZwc+WxleekulxuICAgICAgICBjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoR2FtZUNvbmZpZy5zaG93RlBTKTtcbiAgICAgICAgY2MubWFjcm8uRU5BQkxFX01VTFRJX1RPVUNIID0gZmFsc2U7XG4gICAgfVxuXG4gICAgc3RhcnQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUdhbWUoKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0aWFsaXplR2FtZSgpIHtcbiAgICAgICAgQXVkaW9NYW5hZ2VyLmluaXQoXCJhdWRpby9iZ20vXCIsIFwiYXVkaW8vZWZmZWN0L1wiLCBcImF1ZGlvL3ZvaWNlL1wiKVxuICAgICAgICBhd2FpdCBVSU1hbmFnZXIuaW5pdCh0aGlzLnVpUm9vdE5vZGUhKTtcbiAgICAgICAgbGV0IG1haW5WaWV3UHJvbWlzZSA9IFVJTWFuYWdlci5wdXNoUHJlc2VudGVyKE1haW5WaWV3UHJlc2VudGVyLCB1bmRlZmluZWQpO1xuICAgICAgICBBbmltYXRpb25VdGlscy5hbmltYXRlUHJvZ3Jlc3ModGhpcy5wcm9ncmVzc0JhciEsIDAuMik7XG4gICAgICAgIGxldCByZXQgPSBmYWxzZTtcbiAgICAgICAgbGV0IHRyeUNvdW50ID0gMDtcbiAgICAgICAgd2hpbGUgKCFyZXQgJiYgdHJ5Q291bnQgPCAzKSB7XG4gICAgICAgICAgICB0cnlDb3VudCsrO1xuICAgICAgICAgICAgcmV0ID0gYXdhaXQgU0RLLmluaXQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJldCkge1xuICAgICAgICAgICAgLy8gVE9ETyBzaG93IGVycm9yIGFsZXJ0XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiU0RLIGluaXQgZmFpbGVkLlwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBBbmltYXRpb25VdGlscy5hbmltYXRlUHJvZ3Jlc3ModGhpcy5wcm9ncmVzc0JhciwgMC40LCAxLCB0aGlzLnByb2dyZXNzTGFiZWwpO1xuICAgICAgICB0cnlDb3VudCA9IDA7XG4gICAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRyeUNvdW50Kys7XG4gICAgICAgICAgICAgICAgYXdhaXQgU0RLLmxvZ2luKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRyeUNvdW50ID4gMykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlNESyBsb2dpbiBmYWlsZWQuXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQW5pbWF0aW9uVXRpbHMuYW5pbWF0ZVByb2dyZXNzKHRoaXMucHJvZ3Jlc3NCYXIsIDAuNiwgMSwgdGhpcy5wcm9ncmVzc0xhYmVsKTtcbiAgICAgICAgYXdhaXQgUGxvdE1hbmFnZXIuaW5pdCgpO1xuICAgICAgICBBbmltYXRpb25VdGlscy5hbmltYXRlUHJvZ3Jlc3ModGhpcy5wcm9ncmVzc0JhciwgMC44LCAxLCB0aGlzLnByb2dyZXNzTGFiZWwpO1xuICAgICAgICBhd2FpdCBQbG90TWFuYWdlci5zdGFydCgpO1xuICAgICAgICAvLyBpbml0IGdhbWUgZGF0YVxuICAgICAgICBhd2FpdCBHYW1lTW9kZWxNYW5hZ2VyLmluaXQoKTtcbiAgICAgICAgQW5pbWF0aW9uVXRpbHMuYW5pbWF0ZVByb2dyZXNzKHRoaXMucHJvZ3Jlc3NCYXIsIDEuMCwgMSwgdGhpcy5wcm9ncmVzc0xhYmVsKTtcbiAgICAgICAgYXdhaXQgKGF3YWl0IG1haW5WaWV3UHJvbWlzZSkuc3RhcnQoKTtcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiTG9hZGluZ1wiKS5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBhc3luYyBzdGFydEdhbWUoKSB7XG5cbiAgICB9XG59Il19