private void OnCardTouchMove(EventContext context) { CardCom cardCom = context.sender as CardCom; Vector2 localPos = cardCom.parent.GlobalToLocal(Stage.inst.touchPosition); cardCom.SetXY(localPos.x - cardCom.width / 2, localPos.y - cardCom.height / 2); }
private void OnCardToucheBegin(EventContext context) { context.CaptureTouch(); CardCom cardCom = context.sender as CardCom; cardCom.SetHold(true, false); }
public override void ConstructFromXML(XML xml) { base.ConstructFromXML(xml); ctrlReward = this.GetController("ctrlReward"); btnJumpCard = (GButton)this.GetChild("btnJumpCard"); lstReward = (GList)this.GetChild("lstReward"); btnJumpSelectCard = (GButton)this.GetChild("btnJumpSelectCard"); card1 = (CardCom)this.GetChild("card1"); card2 = (CardCom)this.GetChild("card2"); card3 = (CardCom)this.GetChild("card3"); tSelect3Card = this.GetTransition("tSelect3Card"); }
//从手牌移动到弃牌堆 private void OnMoveHandToUsed(object obj) { CardInstance cardInstance = obj as CardInstance; CardCom cardCom = GetCardCom(cardInstance); if (cardCom == null) { return; } _lstHandCard.Remove(cardCom); cardCom.FlyToUsed(_usedCardPos); UpdateAllHandCardPos(); }
//抽一张卡 private void OnDrawOneCard(object obj) { CardInstance drawCard = obj as CardInstance; CardCom cardCom = CardCom.CreateInstance(); cardCom.scale = new Vector2(BattleDefine.CARD_DECK_SCALE, BattleDefine.CARD_DECK_SCALE); cardCom.x = -cardCom.width; cardCom.SetCard(drawCard); frmHand.AddChild(cardCom); _lstHandCard.Add(cardCom); AddCardEvent(cardCom); UpdateAllHandCardPos(); }
private void OnCardToucheEnd(EventContext context) { CardCom cardCom = context.sender as CardCom; if (TryUseCard(cardCom.GetCardInstance())) { return; } //卡没用掉 放回原处 cardCom.SetHold(false, true, () => { _lastHoldCard = null; UpdateHolderCard(); }); }
//手牌被永久使用掉 private void OnHandCardConsume(object obj) { CardInstance cardInstance = obj as CardInstance; CardCom cardCom = GetCardCom(cardInstance); if (cardCom == null) { return; } _lstHandCard.Remove(cardCom); //todo 卡牌消耗动画 cardCom.TweenFade(0, 1.0f).OnComplete(() => { cardCom.Dispose(); UpdateAllHandCardPos(); }); }
private void UpdateAllHandCardPos() { int cardNum = _lstHandCard.Count; float totalWidth = cardNum * CARD_WIDTH * BattleDefine.CARD_SCALE; if (totalWidth > frmHand.width) { totalWidth = frmHand.width; } float beginPos = (frmHand.width - totalWidth) / 2; float cardSpace = totalWidth / cardNum; for (int i = 0; i < cardNum; i++) { CardCom cardCom = _lstHandCard[i]; cardCom.UpdatePos(beginPos + i * cardSpace, 0, BattleDefine.CARD_SCALE); } }
private void UpdateHolderCard() { if (GRoot.inst.touchTarget is CardCom) { CardCom holdCard = GRoot.inst.touchTarget as CardCom; if (_lastHoldCard == holdCard) { return; } if (_lastHoldCard != null) { _lastHoldCard.SetHold(false); } holdCard.SetHold(true); _lastHoldCard = holdCard; return; } if (_lastHoldCard != null) { _lastHoldCard.SetHold(false); _lastHoldCard = null; } }
private void AddCardEvent(CardCom cardCom) { cardCom.onTouchBegin.Add(OnCardToucheBegin); cardCom.onTouchMove.Add(OnCardTouchMove); cardCom.onTouchEnd.Add(OnCardToucheEnd); }