123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- window.boot = function () {
- var settings = window._CCSettings;
- window._CCSettings = undefined;
- var onProgress = null;
- var RESOURCES = cc.AssetManager.BuiltinBundleName.RESOURCES;
- var INTERNAL = cc.AssetManager.BuiltinBundleName.INTERNAL;
- var MAIN = cc.AssetManager.BuiltinBundleName.MAIN;
- function setLoadingDisplay () {
- // Loading splash scene
- var splash = document.getElementById('splash');
- var progressBar = splash.querySelector('.progress-bar-color');
- onProgress = function (finish, total) {
- var percent = 100 * finish / total;
- percent = percent < 5 ? 5 : percent;
- 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.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_BAIDU_APP,
- cc.sys.BROWSER_TYPE_WECHAT,
- cc.sys.BROWSER_TYPE_MOBILE_QQ,
- cc.sys.BROWSER_TYPE_MIUI,
- cc.sys.BROWSER_TYPE_HUAWEI,
- cc.sys.BROWSER_TYPE_UC,
- ].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.assetManager.downloader.maxConcurrency = 2;
- cc.assetManager.downloader.maxRequestsPerFrame = 2;
- }
- var launchScene = settings.launchScene;
- var bundle = cc.assetManager.bundles.find(function (b) {
- return b.getSceneInfo(launchScene);
- });
- bundle.loadScene(launchScene, null, onProgress,
- function (err, scene) {
- if (!err) {
- cc.director.runSceneImmediate(scene);
- if (cc.sys.isBrowser) {
- // show canvas
- var canvas = document.getElementById('GameCanvas');
- canvas.style.visibility = '';
- var div = document.getElementById('GameDiv');
- if (div) {
- div.style.backgroundImage = '';
- }
- console.log('Success to load scene: ' + launchScene);
- }
- }
- }
- );
- };
- var option = {
- id: 'GameCanvas',
- debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,
- showFPS: settings.debug,
- frameRate: 60,
- groupList: settings.groupList,
- collisionMatrix: settings.collisionMatrix,
- };
- cc.assetManager.init({
- bundleVers: settings.bundleVers,
- remoteBundles: settings.remoteBundles,
- server: settings.server
- });
- var bundleRoot = [INTERNAL];
- settings.hasResourcesBundle && bundleRoot.push(RESOURCES);
- var count = 0;
- function cb (err) {
- if (err) return console.error(err.message, err.stack);
- count++;
- if (count === bundleRoot.length + 1) {
- cc.assetManager.loadBundle(MAIN, function (err) {
- if (!err) cc.game.run(option, onStart);
- });
- }
- }
- cc.assetManager.loadScript(settings.jsList.map(function (x) { return 'src/' + x;}), cb);
- for (var i = 0; i < bundleRoot.length; i++) {
- cc.assetManager.loadBundle(bundleRoot[i], cb);
- }
- };
- 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();
- }
|