main.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. "use strict";
  2. window.__zero__ = {
  3. "packageID": "102"
  4. }
  5. window.boot = function () {
  6. var settings = window._CCSettings;
  7. window._CCSettings = undefined;
  8. var onStart = function onStart() {
  9. cc.view.enableRetina(true);
  10. cc.view.resizeWithBrowserSize(true);
  11. var launchScene = settings.launchScene; // load scene
  12. cc.director.loadScene(launchScene, null, function () {
  13. console.log('Success to load scene: ' + launchScene);
  14. // 如果不共用主屏,在场景加载完成后销毁
  15. if (GameGlobal.LoadingManager && !GameGlobal.LoadingManager.isMainCanvas) {
  16. GameGlobal.LoadingManager.destroy()
  17. }
  18. });
  19. };
  20. var isSubContext = cc.sys.platform === cc.sys.WECHAT_GAME_SUB;
  21. var option = {
  22. id: 'GameCanvas',
  23. debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,
  24. showFPS: !isSubContext && settings.debug,
  25. frameRate: 60,
  26. groupList: settings.groupList,
  27. collisionMatrix: settings.collisionMatrix
  28. };
  29. cc.assetManager.init({
  30. bundleVers: settings.bundleVers,
  31. subpackages: settings.subpackages,
  32. remoteBundles: settings.remoteBundles,
  33. server: settings.server,
  34. subContextRoot: settings.subContextRoot
  35. });
  36. var RESOURCES = cc.AssetManager.BuiltinBundleName.RESOURCES;
  37. var INTERNAL = cc.AssetManager.BuiltinBundleName.INTERNAL;
  38. var MAIN = cc.AssetManager.BuiltinBundleName.MAIN;
  39. var START_SCENE = cc.AssetManager.BuiltinBundleName.START_SCENE;
  40. var bundleRoot = [INTERNAL];
  41. settings.hasResourcesBundle && bundleRoot.push(RESOURCES);
  42. settings.hasStartSceneBundle && bundleRoot.push(MAIN);
  43. var count = 0;
  44. function cb(err) {
  45. if (err) return console.error(err.message, err.stack);
  46. count++;
  47. if (count === bundleRoot.length + 1) {
  48. // if there is start-scene bundle. should load start-scene bundle in the last stage
  49. // Otherwise the main bundle should be the last
  50. cc.assetManager.loadBundle(settings.hasStartSceneBundle ? START_SCENE : MAIN, function (err) {
  51. if (!err) {
  52. if (GameGlobal.LoadingManager && GameGlobal.LoadingManager.isMainCanvas) {
  53. // 如果共用主屏,在引擎初始化前销毁,避免gl冲突
  54. GameGlobal.LoadingManager.destroy().then(() => {
  55. cc.game.run(option, onStart);
  56. })
  57. } else {
  58. cc.game.run(option, onStart);
  59. }
  60. }
  61. });
  62. }
  63. } // load plugins
  64. cc.assetManager.loadScript(settings.jsList.map(function (x) {
  65. return 'src/' + x;
  66. }), cb); // load bundles
  67. for (var i = 0; i < bundleRoot.length; i++) {
  68. cc.assetManager.loadBundle(bundleRoot[i], cb);
  69. }
  70. };