Beispiel #1
0
    public void InitHuCard(eMJInstructionsType instype, List <HuStruct> cards)
    {
        if (mHuGrid == null)
        {
            return;
        }
        int           len     = cards == null ? 0 : cards.Count;
        int           gridLen = mHuCardList.Count;
        MjCollectCard card;

        for (int i = 0; i < len; i++)
        {
            if (i < gridLen)
            {
                card = mHuCardList[i];
            }
            else
            {
                card = NGUITools.AddChild(mHuGrid.gameObject, mHuCard.gameObject).GetComponent <MjCollectCard>();
                mHuCardList.Add(card);
            }
            card.gameObject.SetActive(true);
            //设置数字
            card.SetNum(cards[i].card, mPlayerPosType);
            card.SetHuCardIsGL(cards[i].isGl);//设置胡牌 是否高亮
        }
        for (int i = len; i < gridLen; i++)
        {
            mHuCardList[i].gameObject.SetActive(false);
        }
        mHuGrid.Reposition();
    }
Beispiel #2
0
    public void InitPengCards(eMJInstructionsType instype, List <PengStruct> cards)
    {
        if (mPengGrid == null)
        {
            return;
        }
        int len = cards == null ? 0 : cards.Count;
        List <MjPengCard> cardlist;

        if (instype == eMJInstructionsType.PENG)
        {
            cardlist = mChiCardList;
        }
        //else if (instype == eOptStatus.PENG)
        //    cardlist = mPengCardList;
        else
        {
            cardlist = mOtherCardList;
        }
        int        gridLen = cardlist.Count;
        MjPengCard card;

        for (int i = 0; i < len; i++)
        {
            if (i < gridLen)
            {
                card = cardlist[i];
            }
            else
            {
                card = NGUITools.AddChild(mPengGrid.gameObject, mPengCard.gameObject).GetComponent <MjPengCard>();
                cardlist.Add(card);
            }
            card.gameObject.SetActive(true);

            //设置数字
            card.SetPengNum(instype, mMySeatid, cards[i]);
        }
        for (int i = len; i < gridLen; i++)
        {
            cardlist[i].gameObject.SetActive(false);
        }
        mPengGrid.Reposition();
        //SetPengCardPos(len);
    }
Beispiel #3
0
    /// <summary>
    /// 初始化手牌
    /// </summary>
    /// <param name="cards">手牌</param>
    /// <param name="count">手牌数量(是自己可以任意填)</param>
    /// <param name="curcard">当前摸在手上的牌(>0表示有)</param>
    public virtual void InitHandCards(List <int> cards, int count, int curcard = 0)
    {
        mAllHandCardList.Clear();
        int           len     = cards == null ? count : cards.Count;
        int           gridLen = mHandCardList.Count;
        MjCollectCard card;

        for (int i = 0; i < len; i++)
        {
            if (i < gridLen)
            {
                card = mHandCardList[i];
            }
            else
            {
                card = NGUITools.AddChild(mHandGrid.gameObject, mHandCard.gameObject).GetComponent <MjCollectCard>();
                mHandCardList.Add(card);
            }
            card.gameObject.SetActive(true);
            if (cards != null && cards.Count > 0)
            {
                card.SetNum(cards[i], mPlayerPosType);
            }
            mAllHandCardList.Add(card);
            SetFixeMask(card);//定缺遮罩
        }
        for (int i = len; i < gridLen; i++)
        {
            mHandCardList[i].gameObject.SetActive(false);
        }
        mHandGrid.Reposition();
        if (mPlayerPosType == PlayerPosType.Self)//设置自己手牌位置,打完牌或者碰杠后居中
        {
            SetMyHandCardPos(len);
        }
        //设置摸起来的牌
        if (curcard > 0)
        {
            List <Transform> list = mHandGrid.GetChildList();
            if (list.Count > 0)
            {
                if (mPlayerPosType == PlayerPosType.Self)
                {
                    Vector3 pos = list[list.Count - 1].position;
                    float   x   = mHandGrid.CellWidth > 0 ? 1 : -1;
                    mCurCard.transform.position = new Vector3(pos.x + 3.5f, pos.y, pos.z);
                }
                else
                {
                    Vector3 pos = list[list.Count - 1].localPosition;
                    float   x   = mHandGrid.CellWidth > 0 ? 1 : -1;
                    mCurCard.transform.localPosition = new Vector3(pos.x + 4.8f * x, pos.y, pos.z);
                }
                mCurCard.gameObject.SetActive(true);
                mCurCard.SetNum(curcard, mPlayerPosType);
                SetFixeMask(mCurCard); //定缺遮罩
                mAllHandCardList.Add(mCurCard);
            }
        }
        else
        {
            mCurCard.canHuList = null;
            mCurCard.gameObject.SetActive(false);
        }
        //关闭打出的牌里面与我选中牌相同牌的遮罩
        if (mPlayerPosType == PlayerPosType.Self)
        {
            mRoot.SetSameCardMaskShow(-1);
        }
    }