GameControl.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { EventManager, StageMode } from "../Tool/EventManager";
  2. import { ViewManager, ViewType } from "../View/ViewManager";
  3. import { GameManager } from "./GameManager";
  4. import { GamePool } from "../Tool/GamePool";
  5. export class GameControl{
  6. private static ins:GameControl;
  7. constructor(){
  8. GameControl.ins = this;
  9. this.Init();
  10. }
  11. public static get Instance():GameControl{
  12. if(GameControl.ins){
  13. return GameControl.ins
  14. }
  15. else{
  16. return new GameControl();
  17. }
  18. }
  19. Init(){
  20. EventManager.StageOn(StageMode.Start,this,this.GameStart)
  21. EventManager.StageOn(StageMode.Lose,this,this.GameLose)
  22. EventManager.StageOn(StageMode.Win,this,this.GameWin)
  23. }
  24. GameStart(){
  25. ViewManager.Instance.ShowView(ViewType.InGameView);
  26. GamePool.Instance.FallDown(30);
  27. }
  28. GameLose(){
  29. Laya.timer.once(2000,this,()=>{
  30. if(GameManager.Instance.ReviveNum>0){
  31. ViewManager.Instance.OpenPopView(ViewType.ReviveView);
  32. GameManager.Instance.ReviveNum--;
  33. }
  34. else{
  35. ViewManager.Instance.OpenPopView(ViewType.FailureView);
  36. }
  37. })
  38. }
  39. GameWin(){
  40. Laya.timer.once(2000,this,()=>{
  41. ViewManager.Instance.OpenPopView(ViewType.WinView);
  42. })
  43. }
  44. }