예제 #1
0
    //Set attributes for card buttons. This should be called when card list is updated to update the button appearance
    void SetCardButtonAttr(GameObject button, GameObject card)
    {
        CardButtonScript cbs = button.GetComponent <CardButtonScript>();

        cbs.card          = card;
        cbs.cardName.text = cbs.card.name; //Access cbs CardName to set name
        //cbs.damage.text = cbs.card;
        //cbs.cardImage = Image... Whenever we get images
        cbs.card = card;
    }
        //卡牌点击
        public void cardTapped(CardButtonScript cardSpriteScript)
        {
            UserObject selfUserObject = ModelManager.shareInstance().getSelfUserObject();
            DeskChuPaiObject deskChuPaiObject = ModelManager.shareInstance().getDeskChuPaiObject();
            if (deskChuPaiObject.getNextUserObject().getId() == selfUserObject.getId())
            {
                if (deskChuPaiObject.getIsNextUserMustChuPai())
                {
                    //必须出牌,不出和提示按钮不能点
                    ButtonHelper.setBuChuButtonEnabled(false);
                    ButtonHelper.setTiShiButtonEnabled(false);
                }
                else
                {
                    //四个按钮都允许高亮
                    ButtonHelper.setBuChuButtonEnabled(true);
                    ButtonHelper.setTiShiButtonEnabled(true);
                }

                //UP的牌张数大于0重选和出牌按钮允许,否则禁止
                cardSpriteScript.getTopParentScript().getCardSpriteScriptByTag(cardSpriteScript.getTag()).triggerMoveUpDown();
                List<int> upStatusCards = CardSpriteHelper.getSelfUserUpCards();
                if (upStatusCards.Count > 0)
                {
                    SoundHelper.playCardTappedSound();

                    ButtonHelper.setChongXuanButtonEnabled(true);
                    ButtonHelper.setChuPaiButtonEnabled(true);
                }
                else
                {
                    ButtonHelper.setChongXuanButtonEnabled(false);
                    ButtonHelper.setChuPaiButtonEnabled(false);
                }
            }
        }
    public static void addSelfUserCards(List<int> cards, bool isDiZhu, CardButtonScript.TouchCallBack cardTouchCallBack)
    {
        if (null != GameObject.Find(SpriteNameConst.SELF_USER_CARDS_NAME)) return;

        Transform bgPrefab = Resources.Load<Transform>("prefab/cardSprite/cardBg");
        Transform bgTransform = Instantiate(bgPrefab, new Vector3(0f, -2.5f, 1f), Quaternion.identity) as Transform;
        bgTransform.gameObject.name = SpriteNameConst.SELF_USER_CARDS_NAME;

        Transform cardPrefab = Resources.Load<Transform>("prefab/cardSprite/cardSprite");
        Transform buttonCanvasPrefab = Resources.Load<Transform>("prefab/cardSprite/cardButtonCanvas");
        List<int> sortedCards = Card.sortCardsByCardNumber(cards);

        for (int i = 0; i < sortedCards.Count; i++)
        {
            Transform cardTransform = Instantiate(cardPrefab, new Vector3(0, 1, 0.01f), Quaternion.identity) as Transform;
            CardSpriteScript cardSpriteScript = (CardSpriteScript)cardTransform.gameObject.GetComponent<CardSpriteScript>();
            cardSpriteScript.setParent(bgTransform);
            cardSpriteScript.setLayerIndex(i + 1);
            cardSpriteScript.setCardNumber(sortedCards[i], isDiZhu);

            Vector3 size = cardSpriteScript.getSize();

            float cardWidth = size.x;
            float cardSpace = (float)(cardWidth * 0.5);
            float cardTotalWidth = cardWidth + (sortedCards.Count - 1) * cardSpace;

            float x = -cardTotalWidth / 2 + cardSpace * (i + 1);

            cardSpriteScript.moveTo(new Vector3(x, 0f, 0.01f));
            cardSpriteScript.turnToFront();

            Transform buttonCanvasTransform = Instantiate(buttonCanvasPrefab, new Vector3(0, 1, 0.01f), Quaternion.identity) as Transform;
            CardButtonScript cardButtonScript = (CardButtonScript)buttonCanvasTransform.FindChild("Button").gameObject.GetComponent<CardButtonScript>();
            cardButtonScript.setParent(bgTransform);
            cardButtonScript.setTag(sortedCards[i]);
            cardButtonScript.setTouchEnabled(true);
            cardButtonScript.setTouchCallBack(cardTouchCallBack);
            cardButtonScript.moveTo(new Vector3(x, 0f, 0.01f));
        }

        bgTransform.localScale = new Vector3(0.8f, 0.8f, 1.0f);
    }