Esempio n. 1
0
 /// <summary>
 /// 设置打出的牌里面与当前选择的牌相同的牌的遮罩
 /// </summary>
 /// <param name="num"></param>
 private void SetSameCardNum(int num)
 {
     mSceneRoot.SetSameCardMaskShow(num);
 }
Esempio n. 2
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);
        }
    }