void showUpCardRotate(CardZpjl card) { var iPos = 0; var transP = tTrans[iPos]; for (var i = 0; i < transP.childCount; i++) { if (card.getPos() == 0 && card.getRow() == i) { continue; } var rect = transP.GetChild(i); if (rect.childCount > 0) { var cardUp = rect.GetChild(rect.childCount - 1).gameObject.GetComponent <CardZpjl>(); if (card.getColor() != cardUp.getColor() && cardUp.getCardNum() - card.getCardNum() == 1) { StopCoroutine(playTipsCard()); cardUpTips = cardUp; StartCoroutine(playTipsCard()); break; } } } }
bool getBSuitCard(CardZpjl cardDown, int iRow) { var iPos = 0; var rect = getTransP(iPos, iRow); if (rect.childCount == 0) { if (cardDown.getCardNum() == 13) { onCardMove(cardDown, iPos, iRow); return(true); } else { showTips("K及K的序列可移至空列!"); } } else { var cardUp = rect.GetChild(rect.childCount - 1).gameObject.GetComponent <CardZpjl> (); if (cardDown.getColor() != cardUp.getColor() && cardUp.getCardNum() - cardDown.getCardNum() == 1) { onCardMove(cardDown, iPos, iRow); return(true); } } return(false); }
IEnumerator initLeftShow() { yield return(new WaitForSeconds(0.3f)); var iLen = lCardDatas.Count; var iCount = 24 - lInitCardDatas.Count; for (var i = 0; i < iCount; i++) { var idx = iLen - 1 - i; var iCard = lCardDatas [idx]; var iCardNum = iCard % 100; var iCardType = (int)Mathf.Floor(iCard / 100); CardZpjl card = lCards [idx]; card.init(iCardNum, iCardType, 1, 0, this); var pos = card.gameObject.GetComponent <RectTransform> ().anchoredPosition; card.showMove(_plx - pos.x, _ply - pos.y, _plx); adMgr.PlaySound("move"); yield return(new WaitForSeconds(0.02f)); if (i % 4 == 3) { _iLeftCount += 4; showLabLeftCount(_iLeftCount); yield return(new WaitForSeconds(0.2f)); } } StartCoroutine(playCards()); }
IEnumerator initRightShow() { yield return(new WaitForSeconds(0.1f)); var iLen = lInitCardDatas.Count; for (var i = 0; i < iLen; i++) { var iCard = lInitCardDatas [i]; var iCardNum = iCard % 100; int iCardType = (int)Mathf.Floor(iCard / 100); CardZpjl card = lCards [lCards.Count - i - 1]; card.init(iCardNum, iCardType, 2, iCardType - 1, this); var pos = card.gameObject.GetComponent <RectTransform> ().anchoredPosition; var iPosX = _prx + IROWDIS * iCardType - IROWDIS; card.showMove(iPosX - pos.x, _ply - pos.y, iPosX); adMgr.PlaySound("move"); yield return(new WaitForSeconds(0.02f)); if (i % 4 == 3) { yield return(new WaitForSeconds(0.3f)); } } StartCoroutine(initLeftShow()); }
public bool getBMoveToDes(CardZpjl card) { for (var i = 0; i < tTrans[2].childCount; i++) { if (getBMoveToDes(card, i) == true) { return(true); } } return(false); }
bool getBMoveToDes(CardZpjl card, int iRow) { var transTemp = getTransP(2, iRow); if (card.getCardType() - 1 == iRow) { if ((transTemp.childCount == 1 && card.getCardNum() == 1) || (transTemp.childCount > 1 && card.getCardNum() - 1 == transTemp.GetChild(transTemp.childCount - 1).gameObject.GetComponent <CardZpjl> ().getCardNum())) { onCardMove(card, 2, iRow); return(true); } } return(false); }
public bool getBMoveToMedium(CardZpjl card) { var iPos = 1; var trans = tTrans [iPos]; for (var i = 0; i < trans.childCount; i++) { var transTemp = trans.GetChild(i); if (transTemp.childCount == 0) { onCardMove(card, iPos, i); return(true); } } return(false); }
public bool getBMoveToCard(CardZpjl card, bool bMove) { var iPos = 0; var transP = tTrans [iPos]; for (var i = 0; i < transP.childCount; i++) { if (card.getPos() == 0 && card.getRow() == i) { continue; } var rect = transP.GetChild(i); if (rect.childCount > 0) { var cardUp = rect.GetChild(rect.childCount - 1).gameObject.GetComponent <CardZpjl> (); if (card.getColor() != cardUp.getColor() && cardUp.getCardNum() - card.getCardNum() == 1) { if (bMove == true) { onCardMove(card, iPos, i); } return(true); } } } //只有13才能移到空位 if (card.getCardNum() != 13) { return(false); } for (var i = 0; i < transP.childCount; i++) { if (card.getPos() == 0 && card.getRow() == i) { continue; } if (transP.GetChild(i).childCount == 0) { if (bMove == true) { onCardMove(card, iPos, i); } return(true); } } return(false); }
public bool getBDropped(CardZpjl card, Vector2 pos) { for (var i = 0; i < tTrans.Length; i++) { if (i == 1) { continue; } var trans = tTrans [i]; for (var j = 0; j < trans.childCount; j++) { var rect = trans.GetChild(j); if (i == 0 && rect.childCount > 0) { rect = rect.GetChild(rect.childCount - 1); } bool bIn = RectTransformUtility.RectangleContainsScreenPoint((RectTransform)rect, pos); if (bIn == true) { if (card.getPos() == i && card.getRow() == j) { return(false); } if (i == 0) { return(getBSuitCard(card, j)); } else if (card.getItems().Count == 0) { if (i == 2 && getBMoveToDes(card, j) == true) { return(true); } return(false); } else { return(false); } } } } return(false); }
void showInitCards() { Transform trans; int len; for (var i = 0; i < IROWCOUNT; i++) { trans = getTransP(0, i).transform; len = trans.childCount - 1; for (var j = len; j >= 0; j--) { CardZpjl card = trans.GetChild(j).GetComponent <CardZpjl> (); if (j != len) { card.showBg(true); } } } }
IEnumerator playCards() { yield return(new WaitForSeconds(0.2f)); adMgr.PlaySound("start"); var len = lCards.Count - 24; var idx = 0; for (var i = 0; i < IROWCOUNT; i++) { for (int j = i; j < IROWCOUNT; j++) { if (idx >= len) { break; } int iCard = lCardDatas [idx]; int iCardNum = iCard % 100; int iCardType = (int)Mathf.Floor(iCard / 100); CardZpjl card = lCards [idx]; card.init(iCardNum, iCardType, 0, j, this); var iPosX = _px + IROWDIS * j; var iPosY = _py - ILINEDIS * i; var pos = card.gameObject.GetComponent <RectTransform> ().anchoredPosition; card.showMove(iPosX - pos.x, iPosY - pos.y, iPosX); idx++; } yield return(new WaitForSeconds(0.2f)); } showInitCards(); yield return(new WaitForSeconds(0.6f)); onClickLeft(); coPlayTime = StartCoroutine(playTextTime()); yield return(new WaitForSeconds(0.3f)); setTouchable(true); }
public void addCard(CardZpjl card) { var iPos = card.getPos(); var iRow = card.getRow(); CardZpjl upCardTemp = null; if (card.transform.parent == _delegate.goMove.transform) { var upTrans = _delegate.getTransP(iPos, iRow); var iLen = upTrans.childCount; if (iLen > 0) { var upCard = upTrans.GetChild(iLen - 1).GetComponent <CardZpjl> (); if (upCard.getBShowBg() == true) { upCardTemp = upCard; } } } else { var idx = card.transform.GetSiblingIndex(); if (idx > 0) { var upTrans = card.transform.parent; var upCard = upTrans.GetChild(idx - 1).GetComponent <CardZpjl> (); if (upCard.getBShowBg() == true) { upCardTemp = upCard; } } } lPreCard.Add(card); lPrePos.Add(iPos); lPreRow.Add(iRow); lPreUpCard.Add(upCardTemp); }
public void moveCards(CardZpjl card, int iPos, int iRow) { adMgr.PlaySound("move"); bool bAutoMove = true; var preTrans = card.transform.parent; if (preTrans.gameObject == goMove) { bAutoMove = false; } if (bAutoMove == true && iPos == 0) { card.addItems(); } var items = card.getItems(); var prePos = card.getPos(); if (prePos == 0) { if (bAutoMove == true) { if (preTrans.childCount - items.Count > 1) { preTrans.GetChild(preTrans.childCount - 2 - items.Count).GetComponent <CardZpjl> ().showBg(false); } } else { preTrans = getTransP(card.getPos(), card.getRow()); if (preTrans.childCount > 0) { preTrans.GetChild(preTrans.childCount - 1).GetComponent <CardZpjl> ().showBg(false); } } } var trans = getTransP(iPos, iRow); card.setPos(iPos); card.setRow(iRow); card.transform.SetParent(trans); if (iPos != 0) { if (iPos == 1 && iRow == 0) { _iLeftCount++; showLabLeftCount(_iLeftCount); } // setBMove (); showWin(); if (bAutoMove == false) { var rect = card.gameObject.GetComponent <RectTransform> (); rect.anchoredPosition = new Vector2(rect.rect.width / 2, -rect.rect.height / 2); } else { card.transform.SetParent(goMove.transform); var px = iPos == 1 ? (_plx + IROWDIS * iRow) : (_prx + IROWDIS * iRow); var pos = card.gameObject.GetComponent <RectTransform> ().anchoredPosition; card.showMove(px - pos.x, _ply - pos.y, px); } } else { if (items.Count > 0) { foreach (Transform item in items) { var cCard = item.gameObject.GetComponent <CardZpjl> (); cCard.setPos(iPos); cCard.setRow(iRow); item.SetParent(trans); } } // setBMove (); if (bAutoMove == false) { card.transform.localPosition = new Vector3(0, 0 - ILINEDIS * (trans.childCount - 1 - items.Count), 0); if (items.Count > 0) { var idx = 0; foreach (Transform item in items) { idx++; item.localPosition = new Vector3(0, 0 - ILINEDIS * (trans.childCount - 1 + idx - items.Count), 0); } } } else { card.transform.SetParent(goMove.transform); var iPosX = _px + IROWDIS * iRow; var iPosY = _py - ILINEDIS * (trans.childCount - items.Count - 1 + 1); var pos = card.gameObject.GetComponent <RectTransform> ().anchoredPosition; if (items.Count > 0) { foreach (Transform item in items) { item.SetParent(card.transform); } } card.showMove(iPosX - pos.x, iPosY - pos.y, iPosX); } } }
void onCardMove(CardZpjl card, int iPos, int iRow) { onDrop(card); moveCards(card, iPos, iRow); }
void onDrop(CardZpjl card) { showLabStep(++_iStep); undoMgr.addCard(card); }