public bool getBDropped(CardSpider card, Vector2 pos) { int i = 0; 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)); } } } return(false); }
void setBMove() { var transP = tTrans[0]; for (int i = 0; i < IROWCOUNT; i++) { var trans = transP.GetChild(i); var len = trans.childCount; if (len > 0) { CardSpider preCard = null; for (int j = len - 1; j >= 0; j--) { var card = trans.GetChild(j).GetComponent <CardSpider>(); if (card.getBShowBg() == false && (j == len - 1 || (preCard.getBMove() == true && preCard.getCardType() == card.getCardType() && preCard.getCardNum() + 1 == card.getCardNum()))) { card.setBMove(true); } else { card.setBMove(false); } preCard = card; } } } setTouchable(true); }
void showWin() { var trans = _transWin; var iLen = trans.childCount; if (iLen >= 13) { int iCount = 0; bool bWin = true; CardSpider preCard = null; for (var i = iLen - 1; i >= 0; i--) { var card = trans.GetChild(i).GetComponent <CardSpider> (); if (card.getBShowBg() == true) { break; } if (i == iLen - 1) { if (card.getCardNum() == 1) { iCount++; } else { bWin = false; } } else { if (preCard.getCardType() == card.getCardType() && preCard.getCardNum() + 1 == card.getCardNum()) { iCount++; } else { bWin = false; } } if (bWin == false) { break; } preCard = card; } if (iCount == 13) { adMgr.PlaySound("score"); _transWin = trans; lDesStep.Add(_iStep); lDesRow.Add(trans.GetSiblingIndex()); setTouchable(false); Invoke("playWin", 0.5f); //} } } }
void showUpCardRotate(CardSpider 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 <CardSpider>(); if (cardUp.getCardType() == card.getCardType() && cardUp.getCardNum() - card.getCardNum() == 1) { StopCoroutine(playTipsCard()); cardUpTips = cardUp; StartCoroutine(playTipsCard()); break; } } } //再异色 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 <CardSpider>(); if (cardUp.getCardNum() - card.getCardNum() == 1) { StopCoroutine(playTipsCard()); cardUpTips = cardUp; StartCoroutine(playTipsCard()); break; } } } }
bool getBSuitCard(CardSpider cardDown, int iRow) { var iPos = 0; var rect = getTransP(iPos, iRow); if (rect.childCount == 0) { onCardMove(cardDown, iPos, iRow); return(true); } else { var cardUp = rect.GetChild(rect.childCount - 1).gameObject.GetComponent <CardSpider>(); if (cardUp.getCardNum() - cardDown.getCardNum() == 1) { onCardMove(cardDown, iPos, iRow); return(true); } } 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--) { CardSpider card = trans.GetChild(j).GetComponent <CardSpider>(); if (j == len) { card.setBMove(true); } else { card.showBg(true); } } } }
IEnumerator initMediumShow() { var iLen = lCardDatas.Count; for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { int idx = iLen - 1 - (j + 10 * i); int iCard = lCardDatas[idx]; int iCardNum = iCard % 100; int iCardType = (int)Mathf.Floor(iCard / 100); int iRow = i; CardSpider card = lCards[idx]; card.init(iCardNum, iCardType, 1, iRow, this); var iPosX = _prx - 30 * (4 - i); card.transform.localPosition = new Vector3(iPosX - 30, _ply, 0); var pos = card.gameObject.GetComponent <RectTransform>().anchoredPosition; card.showMove(iPosX - pos.x, 0, iPosX); } yield return(new WaitForSeconds(0.2f)); } }
public void addCard(CardSpider card) { var iPos = card.getPos(); var iRow = card.getRow(); CardSpider upCardTemp = null; if (card.transform.parent == _delegate.getTransMove()) { var upTrans = _delegate.getTransP(iPos, iRow); var iLen = upTrans.childCount; if (iLen > 0) { var upCard = upTrans.GetChild(iLen - 1).GetComponent <CardSpider> (); 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 <CardSpider> (); if (upCard.getBShowBg() == true) { upCardTemp = upCard; } } } lPreCard.Add(card); lPrePos.Add(iPos); lPreRow.Add(iRow); lPreUpCard.Add(upCardTemp); }
IEnumerator playCards() { yield return(new WaitForSeconds(1.2f)); adMgr.PlaySound("start"); int len = lCardDatas.Count - 50; for (var i = 0; i < 6; i++) { for (int j = 0; j < IROWCOUNT; j++) { int idx = j + IROWCOUNT * i; if (idx >= len) { break; } int iCard = lCardDatas[idx]; int iCardNum = iCard % 100; int iCardType = (int)Mathf.Floor(iCard / 100); CardSpider card = lCards[idx]; card.init(iCardNum, iCardType, 0, j, this); var iPosX = _px + 60 * j; var iPosY = _py - 30 * i; var pos = card.gameObject.GetComponent <RectTransform>().anchoredPosition; card.showMove(iPosX - pos.x, iPosY - pos.y, iPosX); } yield return(new WaitForSeconds(0.2f)); } showInitCards(); coPlayTime = StartCoroutine(playTextTime()); yield return(new WaitForSeconds(0.5f)); setTouchable(true); }
public bool getBMoveToCard(CardSpider 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 <CardSpider> (); if (cardUp.getCardType() == card.getCardType() && cardUp.getCardNum() - card.getCardNum() == 1) { if (bMove == true) { onCardMove(card, iPos, i); } return(true); } } } //再异色 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 <CardSpider>(); if (cardUp.getCardNum() - card.getCardNum() == 1) { if (bMove == true) { onCardMove(card, iPos, i); } return(true); } } } //空列不提示 if (bMove == false) { 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 void moveCards(CardSpider card, int iPos, int iRow) { adMgr.PlaySound("move"); bool bAutoMove = true; if (card.transform.parent.gameObject == goMove) { bAutoMove = false; } if (bAutoMove == true && iPos == 0) { card.addItems(); } var items = card.getItems(); Transform upTrans; if (bAutoMove == true) { var cIdx = card.transform.GetSiblingIndex(); if (cIdx > 0 && card.getPos() == 0) { upTrans = card.transform.parent; var upCard = upTrans.GetChild(cIdx - 1).GetComponent <CardSpider>(); if (upCard.getBShowBg() == true) { upCard.showBg(false); } } } else { upTrans = getTransP(card.getPos(), card.getRow()); var iLen = upTrans.childCount; if (iLen > 0) { var upCard = upTrans.GetChild(iLen - 1).GetComponent <CardSpider>(); if (upCard.getBShowBg() == true) { upCard.showBg(false); } } } var trans = getTransP(iPos, iRow); card.setPos(iPos); card.setRow(iRow); card.transform.SetParent(trans); if (iPos == 0) { if (items.Count > 0) { foreach (Transform item in items) { var itemCard = item.GetComponent <CardSpider>(); itemCard.setPos(iPos); itemCard.setRow(iRow); item.SetParent(trans); } } _transWin = trans; setBMove(); showWin(); if (bAutoMove == false) { card.transform.localPosition = new Vector3(0, 0 - 30 * (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 - 30 * (trans.childCount - 1 - items.Count + idx), 0); } } } else { card.transform.SetParent(goMove.transform); var iPosX = _px + IROWDIS * iRow; var iPosY = _py - 30 * (trans.childCount - items.Count); 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(CardSpider card, int iPos, int iRow) { onDrop(card); moveCards(card, iPos, iRow); }
void onDrop(CardSpider card) { showTextStep(++_iStep); undoMgr.addCard(card); // redoMgr.removeAll (); }