PreloadingScene.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. onLoad(){
  20. console.log("进入Preloading场景");
  21. }
  22. start () {
  23. let canvas:Node=find("Canvas");
  24. game.addPersistRootNode(canvas);
  25. if(window["wx"]){
  26. this.LoadSubPackage();
  27. }else{
  28. this.initAds();
  29. }
  30. }
  31. private initAds():void{
  32. console.log("初始化 ADS");
  33. if(sys.isBrowser){
  34. console.log("平台:isBrowser");
  35. GameModel.single.gameName="QiangShenZhanJi"
  36. GameModel.single.userId="Guest";
  37. this.LoadConfigs();
  38. }else if(sys.isMobile){
  39. console.log("平台:isMobile");
  40. LiangLiangSDK.Init(()=>{
  41. this.AdsComplete();
  42. },()=>{
  43. this.AdsComplete();
  44. })
  45. }
  46. }
  47. private AdsComplete():void{
  48. GameModel.single.gameName="QiangShenZhanJi";
  49. GameModel.single.userId=LiangLiangSDK.userID;
  50. this.LoadConfigs();
  51. }
  52. private LoadSubPackage():void{
  53. console.log("加载分包");
  54. loader.downloader.loadSubpackage('d3d', (err: any) => {
  55. if (err) {
  56. return console.error("loadSubpackage Error:"+err);
  57. }
  58. loader.downloader.loadSubpackage('ui', (err: any) => {
  59. if (err) {
  60. return console.error("loadSubpackage Error:"+err);
  61. }
  62. this.initAds();
  63. });
  64. });
  65. }
  66. LoadConfigs():void{
  67. loader.loadResDir("configs",JsonAsset,this.onConfigLoadProgress.bind(this),this.onConfigLoadComplete.bind(this));
  68. }
  69. onConfigLoadProgress(index:number,total:number):void{
  70. LoadingView.single.UpdateProgress(index/total);
  71. }
  72. onConfigLoadComplete(error,asset):void{
  73. if(error!=null){
  74. throw new Error("加载配置出错!");
  75. }
  76. GameConfigManager.Init(asset);
  77. this.initLocalData();
  78. }
  79. private initLocalData():void{
  80. //清除本地数据
  81. GameModel.single.ClearLocalData();
  82. GameModel.single.ReadByLocal();
  83. SceneManager.single.Swicth("PrepareScene");
  84. }
  85. //假进度条
  86. private time:number=0;
  87. update (deltaTime: number) {
  88. this.time+=deltaTime;
  89. this.time=this.time%2;
  90. LoadingView.single.UpdateProgress(this.time/3);
  91. }
  92. }