Badminton-Scoreboard/preview-templates/catan/boot.js

132 lines
4.2 KiB
JavaScript
Raw Permalink Normal View History

2022-05-08 12:36:56 +00:00
(function () {
'use strict';
var splash = document.getElementById('splash');
var progressBar = splash.querySelector('.progress-bar span');
splash.style.display = 'block';
progressBar.style.width = '0%';
function expoOut(t, b, c, d) {
return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
}
var canvas = document.getElementById('GameCanvas');
window.onload = function () {
if (window.__quick_compile_engine__) {
window.__quick_compile_engine__.load(onload);
} else {
onload();
}
};
function onload() {
// socket
// =======================
// Receives a refresh event from the editor, which triggers the reload of the page
var socket = window.io();
socket.on('browser:reload', function () {
window.location.reload();
});
socket.on('browser:confirm-reload', function () {
var r = confirm('Reload?');
if (r) {
window.location.reload();
}
});
// init engine
// =======================
var engineInited = false;
var onStart = function () {
cc.view.enableRetina(true);
cc.view.resizeWithBrowserSize(true);
cc.director.once("EVENT_AFTER_SCENE_READY", function () {
splash.style.display = 'none';
});
cc.game.pause();
// init assets
engineInited = true;
cc.assetManager.loadAny({
url: 'preview-scene.json',
__isNative__: false
}, null, function (finish, totalCount) {
var percent = expoOut(finish, 0, 100, totalCount) / 2;
if (progressBar) {
progressBar.style.width = percent.toFixed(2) + '%';
}
}, function (err, sceneAsset) {
if (err) {
console.error(err.message, err.stack);
return;
}
var scene = sceneAsset.scene;
scene._name = sceneAsset._name;
cc.assetManager.dependUtil._depends.add(scene._id, cc.assetManager.dependUtil._depends.get('preview-scene.json'));
cc.director.runSceneImmediate(scene, function () {
// play game
cc.game.resume();
console.log(scene._name.substring(0,4))
if(scene._name!="Demo" && scene._name.substring(0,4)!="Slot"){
cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () {
cc.director.emit('EVENT_AFTER_SCENE_READY');
});
}
});
});
// purge
//noinspection JSUnresolvedVariable
_CCSettings = undefined;
};
var option = {
id: canvas,
debugMode: _CCSettings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,
showFPS: _CCSettings.debug,
frameRate: 60,
groupList: _CCSettings.groupList,
collisionMatrix: _CCSettings.collisionMatrix,
};
cc.assetManager.init({
importBase: 'assets/others/import',
nativeBase: 'assets/others/native'
});
let {
RESOURCES,
INTERNAL,
MAIN
} = cc.AssetManager.BuiltinBundleName;
var bundleRoot = [INTERNAL];
_CCSettings.hasResourcesBundle && bundleRoot.push(RESOURCES);
var count = 0;
function cb(err) {
if (err) return console.error(err);
count++;
if (count === bundleRoot.length + 1) {
cc.assetManager.loadBundle(MAIN, function (err) {
if (!err) cc.game.run(option, onStart);
});
}
}
// load plugins
cc.assetManager.loadScript(_CCSettings.jsList.map(function (x) {
return '/plugins/' + x;
}), cb);
// load bundles
for (let i = 0; i < bundleRoot.length; i++) {
cc.assetManager.loadBundle('assets/' + bundleRoot[i], cb);
}
}
})();