// 마우스 포인터 위치 검사하기
    void CheckMousePoint()
    {
        Vert v = Vert.Max;
        Hor  h = Hor.Max;

        // 4분면중에서 어느 면에 포인터가 위치하고 있는가?
        switch (name)
        {
        case "1":
            v = Vert.UP;
            h = Hor.LEFT;

            break;

        case "2":
            v = Vert.UP;
            h = Hor.RIGHT;

            break;

        case "3":
            v = Vert.DOWN;
            h = Hor.LEFT;

            break;

        case "4":
            v = Vert.DOWN;
            h = Hor.RIGHT;

            break;
        }

        EventHandler.instance.GetItemSizeOnGrid(v, h, parentSlot);
    }
Example #2
0
        private void Hor_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) //получение цвета нажатой ячейки верхней сетки
        {
            Point c = e.GetPosition(Hor);

            try
            {
                TextBlock r = (TextBlock)Hor.InputHitTest(c);
                curColor.Fill = r.Background;
            }
            catch
            {
                Rectangle r = (Rectangle)Hor.InputHitTest(c);
                curColor.Fill = r.Fill;
            }
        }
Example #3
0
        private void Hor_MouseRightButtonDown(object sender, MouseButtonEventArgs e) //установка метки (кружка) на нужную ячейку верхней сетки и ее снятие
        {
            Point p = e.GetPosition(Hor);

            try
            {
                TextBlock r = (TextBlock)Hor.InputHitTest(p);

                Ellipse el = new Ellipse();
                el.Height          = 19;
                el.Width           = 19;
                el.Fill            = Brushes.Transparent;
                el.Stroke          = Brushes.White;
                el.StrokeThickness = 1;
                Canvas.SetLeft(el, Canvas.GetLeft(r));
                Canvas.SetBottom(el, Canvas.GetBottom(r));
                Hor.Children.Add(el);
            }
            catch
            {
                Ellipse el = (Ellipse)Hor.InputHitTest(p);
                Hor.Children.Remove(el);
            }
        }
Example #4
0
    // 인벤 그리드에서 아이템사이즈에 맞는 슬롯 좌표 구하기
    public void GetItemSizeOnGrid(Vert v, Hor h, UI_Slot parentSlot)
    {
        // 아이템 드래그중 아니면 검사 안함
        if (SelectedItem == null)
        {
            return;
        }

        UI_Item item = SelectedItem.GetComponent <UI_Item>();

        // 아이템 사이즈
        int x = item.SIZE.X;
        int y = item.SIZE.Y;

        // 왼쪽 상단, 오른쪽 하단 값
        int maxX, minX;
        int maxY, minY;

        int upY, downY;
        int rightX, leftX;

        upY = downY = rightX = leftX = 0;

        // 짝수일때와 홀수일때 좌표 계산
        // 짝
        if (x % 2 == 0)
        {
            maxX = x / 2;
            minX = (x - 1) / 2;
        }
        // 홀
        else
        {
            maxX = minX = x / 2;
        }

        // 짝
        if (y % 2 == 0)
        {
            maxY = y / 2;
            minY = (y - 1) / 2;
        }
        // 홀
        else
        {
            maxY = minY = y / 2;
        }

        // 4분면중 어느곳에 마우스 포인터가 위치하는지
        switch (v)
        {
        case Vert.UP:
            upY   = parentSlot.y - maxY;
            downY = parentSlot.y + minY;

            break;

        case Vert.DOWN:
            upY   = parentSlot.y - minY;
            downY = parentSlot.y + maxY;

            break;
        }

        switch (h)
        {
        case Hor.RIGHT:
            leftX  = parentSlot.x - minX;
            rightX = parentSlot.x + maxX;

            break;

        case Hor.LEFT:
            leftX  = parentSlot.x - maxX;
            rightX = parentSlot.x + minX;

            break;
        }

        sc_InvGridManager.SetItemOnGrid(leftX, rightX, downY, upY);
    }