PreloadingScene.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import { _decorator, Component, Node, game, find, loader, JsonAsset } from 'cc';
  2. import { LayerManager } from '../../engines/gui/LayerManager';
  3. import { UIConst } from '../ui/UIConst';
  4. import { LoadingView } from '../../engines/loadingView/LoadingView';
  5. import { SceneManager } from '../../engines/scenes/SceneManager';
  6. import { GameModel } from '../models/GameModel';
  7. import GameConfigManager from '../models/GameConfigManager';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('PreloadingScene')
  10. export class PreloadingScene extends Component {
  11. /* class member could be defined like this */
  12. // dummy = '';
  13. /* use `property` decorator if your want the member to be serializable */
  14. // @property
  15. // serializableDummy = 0;
  16. onLoad(){
  17. console.log("进入Preloading场景");
  18. }
  19. start () {
  20. let canvas:Node=find("Canvas");
  21. game.addPersistRootNode(canvas);
  22. //UI全局节点
  23. let uiRoot:Node=canvas.getChildByName("UIRoot");
  24. let layerRoot:Node=uiRoot.getChildByName("LayerRoot");
  25. LayerManager.single.Init(layerRoot);
  26. UIConst.RegisterGUI();
  27. this.initAds();
  28. }
  29. private initAds():void{
  30. GameModel.single.ClearLocalData();
  31. GameModel.single.gameName="gregGame";
  32. GameModel.single.userId="guest";
  33. if(window["wx"]){
  34. this.LoadSubPackage();
  35. }else{
  36. this.LoadConfigs();
  37. }
  38. }
  39. private LoadSubPackage():void{
  40. loader.downloader.loadSubpackage('d3d', (err: any) => {
  41. if (err) {
  42. return console.error("loadSubpackage Error:"+err);
  43. }
  44. loader.downloader.loadSubpackage('ui', (err: any) => {
  45. if (err) {
  46. return console.error("loadSubpackage Error:"+err);
  47. }
  48. this.LoadConfigs();
  49. });
  50. });
  51. }
  52. LoadConfigs():void{
  53. loader.loadResDir("configs",JsonAsset,this.onConfigLoadProgress.bind(this),this.onConfigLoadComplete.bind(this));
  54. }
  55. onConfigLoadProgress(index:number,total:number):void{
  56. LoadingView.single.UpdateProgress(index/total);
  57. }
  58. onConfigLoadComplete(error,asset):void{
  59. if(error!=null){
  60. throw new Error("加载配置出错!");
  61. }
  62. GameConfigManager.Init(asset);
  63. this.CheckLevels();
  64. }
  65. private CheckLevels():void{
  66. //计算关卡数量
  67. let index:number=0;
  68. let levelConfig:any
  69. do {
  70. index++;
  71. levelConfig=loader.getRes("configs/levels/Level"+index);
  72. } while (levelConfig);
  73. GameModel.single.maxLevel=index;
  74. this.initLocalData();
  75. }
  76. private initLocalData():void{
  77. GameModel.single.ReadByLocal();
  78. SceneManager.single.Swicth("PrepareScene");
  79. }
  80. //假进度条
  81. private time:number=0;
  82. update (deltaTime: number) {
  83. this.time+=deltaTime;
  84. this.time=this.time%2;
  85. LoadingView.single.UpdateProgress(this.time/3);
  86. }
  87. }