PreloadingScene.ts 3.1 KB

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