CloseDoor.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // Learn TypeScript:
  2. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
  7. import EventName from "../EventName/EventName";
  8. import LocalData from "../Template/LocalData";
  9. import MyComponent from "../Template/MyComponent";
  10. import { BusType, CloseDoorPos } from "./DataConfig";
  11. const { ccclass, property } = cc._decorator;
  12. @ccclass
  13. export default class CloseDoor extends MyComponent {
  14. @property(sp.Skeleton)
  15. leftNode: sp.Skeleton = null;
  16. @property(sp.Skeleton)
  17. RightNode: sp.Skeleton = null;
  18. sendOver = false
  19. onLoad() {
  20. super.onLoad();
  21. this.regEvent(EventName.BronDoor, this.BronDoor, this)
  22. this.regEvent(EventName.CloseDoor, this.CloseDoor, this)
  23. }
  24. //默认皮肤
  25. defaultSkin = 2
  26. BronDoor() {
  27. this.sendOver = false
  28. let MenSkeletons = [this.RightNode, this.leftNode]
  29. MenSkeletons.forEach(e => {
  30. e.node.active = false
  31. })
  32. //得到当前关卡的门的数据
  33. let MenData = CloseDoorPos[BusType][LocalData.getInstance().getBusSkin()]
  34. let MenCount = 0
  35. if (MenData.pos.length == 2) {
  36. MenCount = 2
  37. } else {
  38. MenCount = 1
  39. }
  40. for (let index = 0; index < MenCount; index++) {
  41. let MenSkeleton = MenSkeletons[index]
  42. MenSkeleton.node.active = true
  43. MenSkeleton.setSkin('门0' + LocalData.getInstance().getBusSkin())
  44. MenSkeleton.node.setScale(MenData.scale[index][0], MenData.scale[index][1])
  45. MenSkeleton.node.setPosition(MenData.pos[index][0], MenData.pos[index][1])
  46. MenSkeletons[index].setAnimation(0, '待机', false)
  47. }
  48. }
  49. CloseDoor() {
  50. let MenSkeletons = [this.RightNode, this.leftNode]
  51. for (let index = 0; index < MenSkeletons.length; index++) {
  52. if (MenSkeletons[index].node.active) {
  53. MenSkeletons[index].timeScale = 2
  54. //待机_站 待机_坐 坐 走路
  55. let dddd = MenSkeletons[index].setAnimation(0, '关门', false)
  56. this.scheduleOnce(() => {
  57. if (this.sendOver == false) {
  58. this.sendOver = true
  59. cc.systemEvent.emit(EventName.NextCoustomGame)
  60. }
  61. }, dddd.animationEnd / 2)
  62. }
  63. }
  64. }
  65. }