Initial commit
This commit is contained in:
+199
@@ -0,0 +1,199 @@
|
||||
window.boot = function () {
|
||||
var settings = window._CCSettings;
|
||||
window._CCSettings = undefined;
|
||||
|
||||
if ( !settings.debug ) {
|
||||
var uuids = settings.uuids;
|
||||
|
||||
var rawAssets = settings.rawAssets;
|
||||
var assetTypes = settings.assetTypes;
|
||||
var realRawAssets = settings.rawAssets = {};
|
||||
for (var mount in rawAssets) {
|
||||
var entries = rawAssets[mount];
|
||||
var realEntries = realRawAssets[mount] = {};
|
||||
for (var id in entries) {
|
||||
var entry = entries[id];
|
||||
var type = entry[1];
|
||||
// retrieve minified raw asset
|
||||
if (typeof type === 'number') {
|
||||
entry[1] = assetTypes[type];
|
||||
}
|
||||
// retrieve uuid
|
||||
realEntries[uuids[id] || id] = entry;
|
||||
}
|
||||
}
|
||||
|
||||
var scenes = settings.scenes;
|
||||
for (var i = 0; i < scenes.length; ++i) {
|
||||
var scene = scenes[i];
|
||||
if (typeof scene.uuid === 'number') {
|
||||
scene.uuid = uuids[scene.uuid];
|
||||
}
|
||||
}
|
||||
|
||||
var packedAssets = settings.packedAssets;
|
||||
for (var packId in packedAssets) {
|
||||
var packedIds = packedAssets[packId];
|
||||
for (var j = 0; j < packedIds.length; ++j) {
|
||||
if (typeof packedIds[j] === 'number') {
|
||||
packedIds[j] = uuids[packedIds[j]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var subpackages = settings.subpackages;
|
||||
for (var subId in subpackages) {
|
||||
var uuidArray = subpackages[subId].uuids;
|
||||
if (uuidArray) {
|
||||
for (var k = 0, l = uuidArray.length; k < l; k++) {
|
||||
if (typeof uuidArray[k] === 'number') {
|
||||
uuidArray[k] = uuids[uuidArray[k]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setLoadingDisplay () {
|
||||
// Loading splash scene
|
||||
var splash = document.getElementById('splash');
|
||||
var progressBar = splash.querySelector('.progress-bar span');
|
||||
cc.loader.onProgress = function (completedCount, totalCount, item) {
|
||||
var percent = 100 * completedCount / totalCount;
|
||||
if (progressBar) {
|
||||
progressBar.style.width = percent.toFixed(2) + '%';
|
||||
}
|
||||
};
|
||||
splash.style.display = 'block';
|
||||
progressBar.style.width = '0%';
|
||||
|
||||
cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () {
|
||||
splash.style.display = 'none';
|
||||
});
|
||||
}
|
||||
|
||||
var onStart = function () {
|
||||
cc.loader.downloader._subpackages = settings.subpackages;
|
||||
|
||||
cc.view.enableRetina(true);
|
||||
cc.view.resizeWithBrowserSize(true);
|
||||
|
||||
if (cc.sys.isBrowser) {
|
||||
setLoadingDisplay();
|
||||
}
|
||||
|
||||
if (cc.sys.isMobile) {
|
||||
if (settings.orientation === 'landscape') {
|
||||
cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE);
|
||||
}
|
||||
else if (settings.orientation === 'portrait') {
|
||||
cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT);
|
||||
}
|
||||
cc.view.enableAutoFullScreen([
|
||||
cc.sys.BROWSER_TYPE_BAIDU,
|
||||
cc.sys.BROWSER_TYPE_WECHAT,
|
||||
cc.sys.BROWSER_TYPE_MOBILE_QQ,
|
||||
cc.sys.BROWSER_TYPE_MIUI,
|
||||
].indexOf(cc.sys.browserType) < 0);
|
||||
}
|
||||
|
||||
// Limit downloading max concurrent task to 2,
|
||||
// more tasks simultaneously may cause performance draw back on some android system / browsers.
|
||||
// You can adjust the number based on your own test result, you have to set it before any loading process to take effect.
|
||||
if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) {
|
||||
cc.macro.DOWNLOAD_MAX_CONCURRENT = 2;
|
||||
}
|
||||
|
||||
function loadScene(launchScene) {
|
||||
cc.director.loadScene(launchScene,
|
||||
function (err) {
|
||||
if (!err) {
|
||||
if (cc.sys.isBrowser) {
|
||||
// show canvas
|
||||
var canvas = document.getElementById('GameCanvas');
|
||||
canvas.style.visibility = '';
|
||||
var div = document.getElementById('GameDiv');
|
||||
if (div) {
|
||||
div.style.backgroundImage = '';
|
||||
}
|
||||
}
|
||||
cc.loader.onProgress = null;
|
||||
console.log('Success to load scene: ' + launchScene);
|
||||
}
|
||||
else if (CC_BUILD) {
|
||||
setTimeout(function () {
|
||||
loadScene(launchScene);
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
var launchScene = settings.launchScene;
|
||||
|
||||
// load scene
|
||||
loadScene(launchScene);
|
||||
|
||||
};
|
||||
|
||||
// jsList
|
||||
var jsList = settings.jsList;
|
||||
|
||||
var bundledScript = settings.debug ? 'src/project.dev.js' : 'src/project.js?v=20260723-exit1';
|
||||
if (jsList) {
|
||||
jsList = jsList.map(function (x) {
|
||||
return 'src/' + x;
|
||||
});
|
||||
jsList.push(bundledScript);
|
||||
}
|
||||
else {
|
||||
jsList = [bundledScript];
|
||||
}
|
||||
|
||||
var option = {
|
||||
id: 'GameCanvas',
|
||||
scenes: settings.scenes,
|
||||
debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,
|
||||
showFPS: settings.debug,
|
||||
frameRate: 60,
|
||||
jsList: jsList,
|
||||
groupList: settings.groupList,
|
||||
collisionMatrix: settings.collisionMatrix,
|
||||
};
|
||||
|
||||
// init assets
|
||||
cc.AssetLibrary.init({
|
||||
libraryPath: 'res/import',
|
||||
rawAssetsBase: 'res/raw-',
|
||||
rawAssets: settings.rawAssets,
|
||||
packedAssets: settings.packedAssets,
|
||||
md5AssetsMap: settings.md5AssetsMap,
|
||||
subpackages: settings.subpackages
|
||||
});
|
||||
|
||||
cc.game.run(option, onStart);
|
||||
};
|
||||
|
||||
if (window.jsb) {
|
||||
var isRuntime = (typeof loadRuntime === 'function');
|
||||
if (isRuntime) {
|
||||
require('src/settings.js');
|
||||
require('src/cocos2d-runtime.js');
|
||||
if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
|
||||
require('src/physics.js');
|
||||
}
|
||||
require('jsb-adapter/engine/index.js');
|
||||
}
|
||||
else {
|
||||
require('src/settings.js');
|
||||
require('src/cocos2d-jsb.js');
|
||||
if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
|
||||
require('src/physics.js');
|
||||
}
|
||||
require('jsb-adapter/jsb-engine.js');
|
||||
}
|
||||
|
||||
cc.macro.CLEANUP_IMAGE_CACHE = true;
|
||||
window.boot();
|
||||
}
|
||||
Reference in New Issue
Block a user