main.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. window.boot = function () {
  2. var settings = window._CCSettings;
  3. window._CCSettings = undefined;
  4. var onProgress = null;
  5. var RESOURCES = cc.AssetManager.BuiltinBundleName.RESOURCES;
  6. var INTERNAL = cc.AssetManager.BuiltinBundleName.INTERNAL;
  7. var MAIN = cc.AssetManager.BuiltinBundleName.MAIN;
  8. function setLoadingDisplay () {
  9. // Loading splash scene
  10. var splash = document.getElementById('splash');
  11. var progressBar = splash.querySelector('.progress-bar span');
  12. onProgress = function (finish, total) {
  13. var percent = 100 * finish / total;
  14. if (progressBar) {
  15. progressBar.style.width = percent.toFixed(2) + '%';
  16. }
  17. };
  18. splash.style.display = 'block';
  19. progressBar.style.width = '0%';
  20. cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () {
  21. splash.style.display = 'none';
  22. });
  23. }
  24. var onStart = function () {
  25. cc.view.enableRetina(true);
  26. cc.view.resizeWithBrowserSize(true);
  27. if (cc.sys.isBrowser) {
  28. setLoadingDisplay();
  29. }
  30. if (cc.sys.isMobile) {
  31. if (settings.orientation === 'landscape') {
  32. cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE);
  33. }
  34. else if (settings.orientation === 'portrait') {
  35. cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT);
  36. }
  37. cc.view.enableAutoFullScreen([
  38. cc.sys.BROWSER_TYPE_BAIDU,
  39. cc.sys.BROWSER_TYPE_BAIDU_APP,
  40. cc.sys.BROWSER_TYPE_WECHAT,
  41. cc.sys.BROWSER_TYPE_MOBILE_QQ,
  42. cc.sys.BROWSER_TYPE_MIUI,
  43. cc.sys.BROWSER_TYPE_HUAWEI,
  44. cc.sys.BROWSER_TYPE_UC,
  45. ].indexOf(cc.sys.browserType) < 0);
  46. }
  47. // Limit downloading max concurrent task to 2,
  48. // more tasks simultaneously may cause performance draw back on some android system / browsers.
  49. // You can adjust the number based on your own test result, you have to set it before any loading process to take effect.
  50. // if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) {
  51. // cc.assetManager.downloader.maxConcurrency = 2;
  52. // cc.assetManager.downloader.maxRequestsPerFrame = 2;
  53. // }
  54. var launchScene = settings.launchScene;
  55. if(window.location.href.includes('editor')){
  56. launchScene = 'db://assets/Scene/nestShow.fire';
  57. var GameDiv = document.getElementById('GameDiv');
  58. GameDiv.style.width = '1000px'
  59. GameDiv.style.height = '1200px'
  60. }
  61. var bundle = cc.assetManager.bundles.find(function (b) {
  62. return b.getSceneInfo(launchScene);
  63. });
  64. bundle.loadScene(launchScene, null, onProgress,
  65. function (err, scene) {
  66. if (!err) {
  67. cc.director.runSceneImmediate(scene);
  68. if (cc.sys.isBrowser) {
  69. // show canvas
  70. var canvas = document.getElementById('GameCanvas');
  71. canvas.style.visibility = '';
  72. var div = document.getElementById('GameDiv');
  73. if (div) {
  74. div.style.backgroundImage = '';
  75. }
  76. console.log('Success to load scene: ' + launchScene);
  77. }
  78. }
  79. }
  80. );
  81. };
  82. var option = {
  83. id: 'GameCanvas',
  84. debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,
  85. showFPS: settings.debug,
  86. frameRate: 60,
  87. groupList: settings.groupList,
  88. collisionMatrix: settings.collisionMatrix,
  89. };
  90. cc.assetManager.init({
  91. bundleVers: settings.bundleVers,
  92. remoteBundles: settings.remoteBundles,
  93. server: settings.server
  94. });
  95. var bundleRoot = [INTERNAL];
  96. settings.hasResourcesBundle && bundleRoot.push(RESOURCES);
  97. var count = 0;
  98. function cb (err) {
  99. if (err) return console.error(err.message, err.stack);
  100. count++;
  101. if (count === bundleRoot.length + 1) {
  102. cc.assetManager.loadBundle(MAIN, function (err) {
  103. if (!err) cc.game.run(option, onStart);
  104. });
  105. }
  106. }
  107. cc.assetManager.loadScript(settings.jsList.map(function (x) { return 'src/' + x;}), cb);
  108. for (var i = 0; i < bundleRoot.length; i++) {
  109. cc.assetManager.loadBundle(bundleRoot[i], cb);
  110. }
  111. };
  112. if (window.jsb) {
  113. var isRuntime = (typeof loadRuntime === 'function');
  114. if (isRuntime) {
  115. require('src/settings.js');
  116. require('src/cocos2d-runtime.js');
  117. if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
  118. require('src/physics.js');
  119. }
  120. require('jsb-adapter/engine/index.js');
  121. }
  122. else {
  123. require('src/settings.js');
  124. require('src/cocos2d-jsb.js');
  125. if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
  126. require('src/physics.js');
  127. }
  128. require('jsb-adapter/jsb-engine.js');
  129. }
  130. cc.macro.CLEANUP_IMAGE_CACHE = true;
  131. window.boot();
  132. }