コード例 #1
0
ファイル: Card.cs プロジェクト: dannisliang/StaircaseRummy
        /// <summary>
        /// This handles end dragging.
        /// </summary>
        void OnMouseUp()
        {
            dragDisabled = false;

            if (isDragging)
            {
                isDragging = false;
                GetComponent <Collider2D>().enabled = true;

                var mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                var deck          = (from d in FindObjectsOfType <Deck>()
                                     where d != Deck
                                     orderby
                                     d.TopCard == null ? // snap to deck if empty otherwise snap to top card position
                                     Vector2.SqrMagnitude(new Vector2(mousePosition.x - d.transform.position.x, mousePosition.y - d.transform.position.y)) :
                                     Vector2.SqrMagnitude(new Vector2(mousePosition.x - d.TopCard.transform.position.x, mousePosition.y - d.TopCard.transform.position.y))
                                     select d).FirstOrDefault();
                //if (deck != null)
                //    print("Closest deck " + deck.Type);
                //if (deck != null && deck.TopCard != null)
                //    print("Closest deck " + deck.TopCard.ToString());
                if (deck != null && FreeCellBehavior.Instance.CardDrag(this, deck))
                {
                    return;
                }

                Deck.UpdateCards();
            }
        }
コード例 #2
0
ファイル: Card.cs プロジェクト: dannisliang/StaircaseRummy
 /// <summary>
 /// Move this card to a specified position in a specified deck.
 /// </summary>
 public void SetDeck(int newPosition, Deck deck = null)
 {
     Deck.Cards.Remove(this);
     if (deck != null)
     {
         Deck.UpdateCards();
         this.deck = deck;
     }
     Deck.Cards.Insert(newPosition, this);
     Deck.UpdateCards();
 }