PreloadingScene.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import { _decorator, Component, Node, game, find, loader, JsonAsset, Prefab, sys } 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. import { NoticeManager } from '../../engines/notices/NoticeManager';
  10. import { LiangLiangSDK } from '../../libs/liangliangSDK';
  11. const { ccclass, property } = _decorator;
  12. @ccclass('PreloadingScene')
  13. export class PreloadingScene extends Component {
  14. /* class member could be defined like this */
  15. // dummy = '';
  16. /* use `property` decorator if your want the member to be serializable */
  17. // @property
  18. // serializableDummy = 0;
  19. @property({
  20. type:Node
  21. })
  22. NoticeLayer:Node=null;
  23. @property({
  24. type:Prefab
  25. })
  26. TextNoticeView:Prefab=null;
  27. onLoad(){
  28. console.log("进入Preloading场景");
  29. }
  30. start () {
  31. let canvas:Node=find("Canvas");
  32. game.addPersistRootNode(canvas);
  33. //UI全局节点
  34. let uiRoot:Node=canvas.getChildByName("UIRoot");
  35. let layerRoot:Node=uiRoot.getChildByName("LayerRoot");
  36. LayerManager.single.Init(layerRoot);
  37. //提示
  38. let noticeMap:Map<string,Prefab>=new Map<string,Prefab>();
  39. noticeMap.set("Text",this.TextNoticeView);
  40. NoticeManager.Init(this.NoticeLayer,noticeMap);
  41. UIConst.RegisterGUI();
  42. this.initAds();
  43. }
  44. private initAds():void{
  45. if(sys.isBrowser){
  46. GameModel.single.gameName="GregGame"
  47. GameModel.single.userId="Guest";
  48. if(window["wx"]){
  49. this.LoadSubPackage();
  50. }else{
  51. this.LoadConfigs();
  52. }
  53. }else if(sys.isMobile){
  54. LiangLiangSDK.Init(()=>{
  55. this.AdsComplete();
  56. },()=>{
  57. this.AdsComplete();
  58. })
  59. }
  60. }
  61. private AdsComplete():void{
  62. GameModel.single.gameName=LiangLiangSDK.gameName;
  63. GameModel.single.userId=LiangLiangSDK.userID;
  64. if(window["wx"]){
  65. this.LoadSubPackage();
  66. }else{
  67. this.LoadConfigs();
  68. }
  69. }
  70. private LoadSubPackage():void{
  71. loader.downloader.loadSubpackage('d3d', (err: any) => {
  72. if (err) {
  73. return console.error("loadSubpackage Error:"+err);
  74. }
  75. loader.downloader.loadSubpackage('ui', (err: any) => {
  76. if (err) {
  77. return console.error("loadSubpackage Error:"+err);
  78. }
  79. this.LoadConfigs();
  80. });
  81. });
  82. }
  83. LoadConfigs():void{
  84. loader.loadResDir("configs",JsonAsset,this.onConfigLoadProgress.bind(this),this.onConfigLoadComplete.bind(this));
  85. }
  86. onConfigLoadProgress(index:number,total:number):void{
  87. LoadingView.single.UpdateProgress(index/total);
  88. }
  89. onConfigLoadComplete(error,asset):void{
  90. if(error!=null){
  91. throw new Error("加载配置出错!");
  92. }
  93. GameConfigManager.Init(asset);
  94. this.initLocalData();
  95. }
  96. private initLocalData():void{
  97. GameModel.single.ReadByLocal();
  98. SceneManager.single.Swicth("PrepareScene");
  99. }
  100. //假进度条
  101. private time:number=0;
  102. update (deltaTime: number) {
  103. this.time+=deltaTime;
  104. this.time=this.time%2;
  105. LoadingView.single.UpdateProgress(this.time/3);
  106. }
  107. }