Exemplo n.º 1
0
    private void Update()
    {
        Vector3 cursorPos   = GetMousePos();
        bool    isSelecting = Input.GetMouseButton(0);

        if (isSelecting)
        {
            if (wasSelecting)
            {
                UpdateDrag(cursorPos);
            }
            else
            {
                SelectedCard = GetHoveredCard(cursorPos);
                if (SelectedCard != null)
                {
                    cursorStartDragPoint = cursorPos;
                    objStartDragPoint    = SelectedCard.CardObject.transform.position;
                }
            }
        }
        else
        {
            if (wasSelecting && SelectedCard != null)
            {
                DoRelease(cursorPos);
            }
            SettleCardPositions();
        }
        wasSelecting = isSelecting;
    }
Exemplo n.º 2
0
    private IReadOnlyList <CardInteractor> CreateCards()
    {
        List <CardInteractor> ret = new List <CardInteractor>();

        for (int value = 0; value < 52; value++)
        {
            Card           card   = Deck.Cards[value];
            CardInteractor option = CreateCard(card);
            ret.Add(option);
        }
        return(ret);
    }
Exemplo n.º 3
0
		public CardScene(Viewport viewport) : base(viewport)
		{
			Name = "Cards";
			Mwx = new MwxSource(ResourceHelper.GetStream("cards.mwx"));
			
			var book = Mwx.Get<CardBook>("Book");
			RenderList.AddActor(book);
			book.ComputeGeometry();
			
			var interactor = new CardInteractor<DemoCard>(this) { CardBook = book };
			PrimaryInteractor = interactor;
			interactor.EditInteractor = new SingleActorInteractor<DemoCard>(this);

			var sceneInfo = new SceneInfoOverlay(this);
			RenderList.AddOverlay(sceneInfo);
		}
Exemplo n.º 4
0
    private CardInteractor GetHoveredCard(Vector3 cursorPos)
    {
        float          minDist = float.MaxValue;
        CardInteractor ret     = SelectedCard;

        foreach (CardInteractor item in cardInteractors)
        {
            float dist = (item.CardObject.transform.position - cursorPos).sqrMagnitude;
            if (dist < minDist)
            {
                minDist = dist;
                ret     = item;
            }
        }
        return(ret);
    }