PreloadingScene.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. // Learn TypeScript:
  2. // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
  7. import SceneManager from "../../GEngine/scenes/SceneManager";
  8. import GUIManager from "../../GEngine/gui/GUIManager";
  9. import LoadingView from "../../GEngine/loadingView/LoadingView";
  10. import LayerManager from "../../GEngine/gui/LayerManager";
  11. import UIConst from "../gui/UIConst";
  12. const {ccclass, property} = cc._decorator;
  13. @ccclass
  14. export default class PreloadingScene extends cc.Component {
  15. onLoad () {
  16. console.log("进入LoadingView场景");
  17. }
  18. start () {
  19. //UI全局节点
  20. let uiRoot:cc.Node=cc.find("UIRoot") as cc.Node;
  21. let layerRoot:cc.Node=cc.find("LayerRoot",uiRoot);
  22. cc.game.addPersistRootNode(uiRoot);
  23. this.InitLayers(layerRoot);
  24. this.InitGUI();
  25. //加载需要的
  26. this.LoadAssetBundles();
  27. }
  28. private InitLayers(layerRoot:cc.Node):void{
  29. LayerManager.single.Init(layerRoot);
  30. }
  31. private LoadAssetBundles():void{
  32. cc.assetManager.loadBundle("scenes",null,this.LoadScenesAssetBundleHandler.bind(this));
  33. cc.assetManager.loadBundle("ui",null,this.LoadUIAssetBundleHandler.bind(this));
  34. }
  35. private LoadScenesAssetBundleHandler(err: Error, bundle: cc.AssetManager.Bundle):void{
  36. if(err){
  37. console.error(err);
  38. return;
  39. }
  40. SceneManager.single.AssetBundle=bundle;
  41. }
  42. private LoadUIAssetBundleHandler(err:Error,bundle: cc.AssetManager.Bundle):void{
  43. if(err){
  44. console.error(err);
  45. return;
  46. }
  47. GUIManager.single.AssetBundle=bundle;
  48. this.CheckAllAssetBundleLoaded();
  49. }
  50. /**
  51. * 检测是否都加载完成
  52. */
  53. private CheckAllAssetBundleLoaded():void{
  54. if(SceneManager.single.AssetBundle!=null&&GUIManager.single.AssetBundle!=null){
  55. //进入赛前准备界面
  56. SceneManager.single.Swicth("PrepareScene");
  57. LoadingView.single.Hide();
  58. }
  59. }
  60. /**
  61. * 初始化GUI系统
  62. */
  63. private InitGUI():void{
  64. UIConst.RegisterGUI();
  65. }
  66. //假进度条
  67. private time:number=0;
  68. update (dt) {
  69. this.time+=dt;
  70. this.time=this.time%2;
  71. LoadingView.single.UpdateProgress(this.time/2);
  72. }
  73. }