import { _decorator, Component, Node, instantiate, Prefab, v3, UITransform, CCBoolean } from 'cc'; import { PVPCardData } from './PVP'; import { PVPCardItem } from './PVPCardItem'; const { ccclass, property } = _decorator; @ccclass('PVPCardArray') export class PVPCardArray extends Component { @property({ type: Prefab, tooltip: "武将卡牌预制体" }) prefab: Prefab; @property({ type: Prefab, tooltip: "武将卡牌预制体(翻转)" }) prefab_filp: Prefab; @property({ type: Node, tooltip: "手牌" }) handNode: Node; @property({ type: Node, tooltip: "牌堆" }) deckNode: Node; @property({ tooltip: "是否镜像翻转" }) isFilp: boolean = false; public setData(data: Array): void { this.handNode.removeAllChildren(); this.deckNode.removeAllChildren(); let handLength = data.length >= 5 ? 5 : data.length; for (let i = 0; i < handLength; i++) { let node = instantiate(this.isFilp ? this.prefab_filp : this.prefab); let offsetX = i == 0 ? 0 : 30; node.setPosition(v3((((this.handNode.getComponent(UITransform).width - node.getComponent(UITransform).width) / (handLength - 1)) * i + offsetX) * (this.isFilp ? -1 : 1), 0, 0)); node.setParent(this.handNode); node.setScale(i == 0 ? v3(1, 1, 1) : v3(0.85, 0.85, 1)); node.getComponent(PVPCardItem).setData(data[i]); } for (let j = handLength; j < data.length; j++) { let node = instantiate(this.isFilp ? this.prefab_filp : this.prefab); node.setScale(v3(0.85, 0.85, 1)); node.setPosition(v3((((this.deckNode.getComponent(UITransform).width - node.getComponent(UITransform).width * node.scale.x) / (data.length - handLength - 1)) * (j - handLength)) * (this.isFilp ? -1 : 1), 0, 0)); node.setParent(this.deckNode); node.getComponent(PVPCardItem).setData(data[j]); } } }