示例#1
0
    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;
                }
            }
        }
    }
示例#2
0
    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);
    }
示例#3
0
    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());
    }
示例#4
0
    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());
    }
示例#5
0
 public bool getBMoveToDes(CardZpjl card)
 {
     for (var i = 0; i < tTrans[2].childCount; i++)
     {
         if (getBMoveToDes(card, i) == true)
         {
             return(true);
         }
     }
     return(false);
 }
示例#6
0
    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);
    }
示例#7
0
    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);
    }
示例#8
0
    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);
    }
示例#9
0
    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);
    }
示例#10
0
    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);
                }
            }
        }
    }
示例#11
0
    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);
    }
示例#12
0
    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);
    }
示例#13
0
    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);
            }
        }
    }
示例#14
0
 void onCardMove(CardZpjl card, int iPos, int iRow)
 {
     onDrop(card);
     moveCards(card, iPos, iRow);
 }
示例#15
0
 void onDrop(CardZpjl card)
 {
     showLabStep(++_iStep);
     undoMgr.addCard(card);
 }