PlayerManager.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import { LevelManager } from "./LevelManager";
  2. import { AssetManager } from "../Resources/AssetManager";
  3. import { MateManager } from "./MateManager";
  4. import { MateMove } from "../Game/MateMove";
  5. import { AccountManager } from "../NetWork/AccountManager";
  6. import { DispatcherManager, StageState } from "../GameUtils/EventManager";
  7. export class PlayerManager{
  8. private static ins:PlayerManager;
  9. constructor(){
  10. PlayerManager.ins = this;
  11. }
  12. public static get Instance():PlayerManager{
  13. if(PlayerManager.ins == null){
  14. return new PlayerManager();
  15. }
  16. return PlayerManager.ins;
  17. }
  18. // public PlayerNode:Laya.Sprite3D;
  19. public player:Laya.Sprite3D;
  20. //是否能移动
  21. public canmove:boolean = false;
  22. private Direction:number;
  23. Init(){
  24. this.Direction = AccountManager.Instance.curplayerData.LevelDirection;
  25. let playerpref = AssetManager.Instance.Character.get(1) as Laya.Sprite3D;
  26. this.player = Laya.Sprite3D.instantiate(playerpref);
  27. LevelManager.Instance.spritepool.addChild(this.player);
  28. this.player.transform.position = AssetManager.Instance.playerpos.transform.position.clone();
  29. this.player.transform.rotation = AssetManager.Instance.playerpos.transform.rotation.clone();
  30. this.trun = true;
  31. DispatcherManager.StageOn(StageState.ShowGuide1,this,this.Guide1);
  32. DispatcherManager.StageOn(StageState.ShowGuide2,this,this.Guide2);
  33. }
  34. RefreshPro():number{
  35. let startpoint = AssetManager.Instance.playerpos.transform.position.clone();
  36. let Z = startpoint.z;
  37. let finishpoint = AssetManager.Instance.finishpoint.z;
  38. let distance = finishpoint - Z;
  39. let pro = this.player.transform.position.z/distance;
  40. return pro;
  41. }
  42. EnablePlayer(){
  43. let _move = this.player.addComponent(MateMove) as MateMove;
  44. _move.Tag_Head = true;
  45. this.ListenOn();
  46. }
  47. ListenOn(){
  48. Laya.stage.on(Laya.Event.MOUSE_DOWN,this,this.OnMouseDown);
  49. }
  50. ListenOff(){
  51. Laya.stage.off(Laya.Event.MOUSE_DOWN,this,this.OnMouseDown);
  52. }
  53. DisablePlayer(){
  54. let _move = this.player.getComponent(MateMove) as MateMove;
  55. if(_move){
  56. _move.destroy();
  57. }
  58. }
  59. Guide1(){
  60. this.ListenOff();
  61. let _matemove = this.player.getComponent(MateMove) as MateMove;
  62. if(_matemove){
  63. _matemove.Pause();
  64. }
  65. }
  66. Guide2(){
  67. let _matemove = this.player.getComponent(MateMove) as MateMove;
  68. if(_matemove){
  69. _matemove.Pause();
  70. }
  71. this.guide2stop = true;
  72. }
  73. Resume(){
  74. let _matemove = this.player.getComponent(MateMove) as MateMove;
  75. if(_matemove){
  76. _matemove.Resume();
  77. }
  78. }
  79. guide2stop = false;
  80. trun = true;
  81. // first = true;
  82. OnMouseDown(){
  83. if(this.Direction == 1){
  84. if(this.trun){
  85. this.player.transform.rotationEuler = new Laya.Vector3(0,-90,0);
  86. this.trun = !this.trun;
  87. }
  88. else{
  89. this.player.transform.rotationEuler = new Laya.Vector3(0,0,0);
  90. this.trun = !this.trun;
  91. }
  92. }
  93. else if(this.Direction == 2){
  94. if(this.trun){
  95. this.player.transform.rotationEuler = new Laya.Vector3(0,90,0);
  96. this.trun = !this.trun;
  97. }
  98. else{
  99. this.player.transform.rotationEuler = new Laya.Vector3(0,0,0);
  100. this.trun = !this.trun;
  101. }
  102. }
  103. if(this.guide2stop){
  104. this.guide2stop = false;
  105. this.Resume();
  106. DispatcherManager.StageTrigger(StageState.HideGuide2);
  107. }
  108. }
  109. }