Esempio n. 1
0
        private void Border_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                // Determine which side of the border is being dragged
                if (!isDraggingBorder)
                {
                    var relMousePos = e.GetPosition(Border);

                    // Calculate which edge is being dragged
                    var topEdgeOffset    = Math.Abs(relMousePos.Y);
                    var bottomEdgeOffset = Math.Abs(Border.ActualHeight - relMousePos.Y);
                    var leftEdgeOffset   = Math.Abs(relMousePos.X);
                    var rightEdgeOffset  = Math.Abs(Border.ActualWidth - relMousePos.X);

                    if (leftEdgeOffset < DRAG_RADIUS && topEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.TOP_LEFT;
                    }
                    else if (rightEdgeOffset < DRAG_RADIUS && topEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.TOP_RIGHT;
                    }
                    else if (rightEdgeOffset < DRAG_RADIUS && bottomEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.BOTTOM_RIGHT;
                    }
                    else if (leftEdgeOffset < DRAG_RADIUS && bottomEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.BOTTOM_LEFT;
                    }
                    else if (topEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.TOP_EDGE;
                    }
                    else if (rightEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.RIGHT_EDGE;
                    }
                    // Bottom edge
                    else if (bottomEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.BOTTOM_EDGE;
                    }
                    // Left edge
                    else if (leftEdgeOffset < DRAG_RADIUS)
                    {
                        BorderDragZone = DragZone.LEFT_EDGE;
                    }
                    else
                    {
                        return;
                    }

                    isDraggingBorder  = true;
                    Canvas.MouseMove += CanvasControl_MouseMove;
                    return;
                }
            }
        }
Esempio n. 2
0
 public void snapTo(Vector3 newPos, DragZone dragZone)
 {
     this.transform.position = new Vector3(newPos.x, newPos.y, this.transform.position.z);
     if (dragZone != currentDragZone || currentDragZone == null)
     {
         if (currentDragZone != null)
         {
             currentDragZone.setDraggable(null);
         }
         currentDragZone = dragZone;
         lastGoodPos     = dragZone.transform.position;
         dragZone.setDraggable(this);
     }
 }
Esempio n. 3
0
    public void OnDrop(PointerEventData eventData)
    {
        DragZone d = eventData.pointerDrag.GetComponent <DragZone>();

        if (d != null)
        {
            Debug.Log("On Drop to" + gameObject.name);

            d.parentToReturnTo = this.transform;

            level = level + 1;
        }

        if (level == 1)
        {
            SceneManager.LoadScene(17);
        }
    }