// Learn TypeScript: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html import { PopName } from "../EventName/EventName"; import { leftButtomStatPos, tableData, tiledSize } from "../GameLogic/DataConfig"; import PopComponet from "../Template/PopComponet"; import PopManger from "./PopManger"; const { ccclass, property } = cc._decorator; @ccclass export default class Guide extends cc.Component { @property(cc.Node) barrierLayer: cc.Node = null @property(cc.SpriteFrame) sp: cc.SpriteFrame[] = [] //播放引导动画 playAni(bron: { x, y }, target: { x, y }) { let GuideHand = this.node.getChildByName("GuideHand") let bronNodePos = this.getTargetPosInMap(cc.v2(bron.x, bron.y)) let targetNodePos = this.getTargetPosInMap(cc.v2(target.x, target.y)) let bronWordPos = this.barrierLayer.convertToWorldSpaceAR(bronNodePos) let targetWordPos = this.barrierLayer.convertToWorldSpaceAR(targetNodePos) let bronPos = this.node.convertToNodeSpaceAR(bronWordPos) let targetPos = this.node.convertToNodeSpaceAR(targetWordPos) GuideHand.getComponent(cc.Sprite).spriteFrame = this.sp[0] cc.tween(GuideHand) .to(0, { position: cc.v3(bronPos.x, bronPos.y) }) .to(0, { opacity: 255 }) .delay(0.4) .call(() => { GuideHand.getComponent(cc.Sprite).spriteFrame = this.sp[1] }) .delay(0.2) .to(1, { position: cc.v3(targetPos.x, targetPos.y) }, { easing: 'quadOut' }) .call(() => { GuideHand.getComponent(cc.Sprite).spriteFrame = this.sp[0] }) .delay(0.4) .to(0, { opacity: 0 }) .start() } getTargetPosInMap(MapPos: cc.Vec2) { return cc.v3(leftButtomStatPos.x + MapPos.x * tiledSize.width + tiledSize.width / 2, leftButtomStatPos.y + MapPos.y * tiledSize.height + tiledSize.height / 2) } }