PreloadingScene.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { Component, find, game, JsonAsset, loader, Node, _decorator } from 'cc';
  2. import { LoadingView } from '../../engines/loadingView/LoadingView';
  3. import { SceneManager } from '../../engines/scenes/SceneManager';
  4. import { SubPackageLoader } from '../../engines/utils/SubPackageLoader';
  5. import { LiangLiangSDK } from '../../libs/liangliangSDK';
  6. import { NotPlatform } from '../../Platform/NotPlatform';
  7. import { PlatformManager } from '../../Platform/PlatformManager';
  8. import { QQPlatform } from '../../Platform/QQ/QQPlatform';
  9. import { WeChatPlatforms } from '../../Platform/WeChat/WeChatPlatforms';
  10. import GameConfigManager from '../models/GameConfigManager';
  11. import { GameModel } from '../models/GameModel';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('PreloadingScene')
  14. export class PreloadingScene extends Component {
  15. onLoad(){
  16. console.log("进入Preloading场景");
  17. }
  18. start () {
  19. let canvas:Node=find("Canvas");
  20. game.addPersistRootNode(canvas);
  21. if(window["qq"]){
  22. this.LoadSubPackage();
  23. PlatformManager.init(new QQPlatform())
  24. }else if(window["wx"]){
  25. this.LoadSubPackage();
  26. PlatformManager.init(new WeChatPlatforms())
  27. }else{
  28. this.LoadConfigs();
  29. PlatformManager.init(new NotPlatform())
  30. }
  31. PlatformManager.login(()=>{},()=>{});
  32. }
  33. private initAds():void{
  34. LiangLiangSDK.Init(()=>{
  35. console.log("平台初始化成功");
  36. this.AdsComplete();
  37. },()=>{
  38. console.log("平台初始化失败");
  39. this.AdsComplete();
  40. })
  41. }
  42. private AdsComplete():void{
  43. GameModel.single.gameName="QiangShenZhanJi";
  44. GameModel.single.userId=LiangLiangSDK.userID;
  45. this.LoadConfigs();
  46. }
  47. private LoadSubPackage():void{
  48. console.log("加载分包");
  49. LoadingView.single.UpdateLabel("加载分包");
  50. SubPackageLoader.load(["uiRes","d3d", "sounds", "icons", "Animation"],(progress:number)=>{
  51. LoadingView.single.UpdateProgress(progress);
  52. },()=>{
  53. LoadingView.single.UpdateLabel("拉取平台数据");
  54. if(window['qq']){
  55. GameModel.single.gameName="QiangShenZhanJi";
  56. GameModel.single.userId="游客";
  57. this.LoadConfigs();
  58. }else{
  59. this.initAds();
  60. }
  61. },(errMsg:string)=>{
  62. LoadingView.single.UpdateLabel(errMsg);
  63. })
  64. }
  65. LoadConfigs():void{
  66. LoadingView.single.UpdateLabel("加载配置");
  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. LoadingView.single.UpdateLabel("加载配置出错!");
  75. return;
  76. }
  77. GameConfigManager.Init(asset);
  78. this.initLocalData();
  79. }
  80. private initLocalData():void{
  81. // //清除本地数据
  82. // GameModel.single.ClearLocalData();
  83. GameModel.single.ReadByLocal();
  84. SceneManager.single.Swicth("PrepareScene");
  85. }
  86. // //假进度条
  87. // private time:number=0;
  88. // update (deltaTime: number) {
  89. // this.time+=deltaTime;
  90. // this.time=this.time%2;
  91. // LoadingView.single.UpdateProgress(this.time/3);
  92. // }
  93. }