Guide.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 { PopName } from "../EventName/EventName";
  8. import { leftButtomStatPos, tableData, tiledSize } from "../GameLogic/DataConfig";
  9. import PopComponet from "../Template/PopComponet";
  10. import PopManger from "./PopManger";
  11. const { ccclass, property } = cc._decorator;
  12. @ccclass
  13. export default class Guide extends cc.Component {
  14. @property(cc.Node)
  15. barrierLayer: cc.Node = null
  16. @property(cc.SpriteFrame)
  17. sp: cc.SpriteFrame[] = []
  18. //播放引导动画
  19. playAni(bron: { x, y }, target: { x, y }) {
  20. let GuideHand = this.node.getChildByName("GuideHand")
  21. let bronNodePos = this.getTargetPosInMap(cc.v2(bron.x, bron.y))
  22. let targetNodePos = this.getTargetPosInMap(cc.v2(target.x, target.y))
  23. let bronWordPos = this.barrierLayer.convertToWorldSpaceAR(bronNodePos)
  24. let targetWordPos = this.barrierLayer.convertToWorldSpaceAR(targetNodePos)
  25. let bronPos = this.node.convertToNodeSpaceAR(bronWordPos)
  26. let targetPos = this.node.convertToNodeSpaceAR(targetWordPos)
  27. GuideHand.getComponent(cc.Sprite).spriteFrame = this.sp[0]
  28. cc.tween(GuideHand)
  29. .to(0, { position: cc.v3(bronPos.x, bronPos.y) })
  30. .to(0, { opacity: 255 })
  31. .delay(0.4)
  32. .call(() => { GuideHand.getComponent(cc.Sprite).spriteFrame = this.sp[1] })
  33. .delay(0.2)
  34. .to(1, { position: cc.v3(targetPos.x, targetPos.y) }, { easing: 'quadOut' })
  35. .call(() => { GuideHand.getComponent(cc.Sprite).spriteFrame = this.sp[0] })
  36. .delay(0.4)
  37. .to(0, { opacity: 0 })
  38. .start()
  39. }
  40. getTargetPosInMap(MapPos: cc.Vec2) {
  41. return cc.v3(leftButtomStatPos.x + MapPos.x * tiledSize.width + tiledSize.width / 2, leftButtomStatPos.y + MapPos.y * tiledSize.height + tiledSize.height / 2)
  42. }
  43. }