Example #1
0
        private void pictureBox29_Click(object sender, EventArgs e)
        {
            int myX = 5, myY = 5;

            //防止点空位置
            if (pictureBox29.Visible == false)
            {
                this.states = ClickStates.secondClick;
                return;
            }
            //先更新点击状态
            changeStates();


            updateTextBoxes(myX, myY);
            if (states == ClickStates.firstClick)
            {
                this.setXY(myX, myY);
            }
            else
            {
                if (this.checkCurrect(firstPointX, firstPointY, myX, myY))
                {
                    this.pictureBox16.Visible            = false;
                    this.pictureBox29.Visible            = false;
                    this.cells[firstPointX, firstPointY] = this.nil;//给点置空值
                    this.cells[myX, myY] = this.nil;
                }
            }
        }
Example #2
0
 private void changeStates()
 {
     if (this.states == ClickStates.firstClick)
     {
         this.states = ClickStates.secondClick;
     }
     else if (this.states == ClickStates.secondClick)
     {
         this.states = ClickStates.firstClick;
     }
 }
Example #3
0
 public MouseData(Vector2 screenPosition, Vector2 previousScreenPosition, Vector2 worldPosition, Vector2 previousWorldPosition,
                  ClickStates leftClick, ClickStates rightClick, ClickStates middleClick, float scrollDelta)
 {
     ScreenPosition         = screenPosition;
     PreviousScreenPosition = previousScreenPosition;
     WorldPosition          = worldPosition;
     PreviousWorldPosition  = previousWorldPosition;
     LeftClick   = leftClick;
     RightClick  = rightClick;
     MiddleClick = middleClick;
     ScrollDelta = scrollDelta;
 }
Example #4
0
        private void imDrawSpace_MouseUp(object sender, MouseEventArgs e)
        {
            if (nodesEdgesState == NodesEdges.Nodes)
            {
                switch (clickState)
                {
                case ClickStates.Add:
                    clickedNode = graph.AddNode(x, y, Color.White);
                    break;

                case ClickStates.Delete:
                    if (clickedNode != null)
                    {
                        graph.DeleteNode(clickedNode);
                    }
                    break;

                case ClickStates.Move:
                    break;
                }
            }
            else
            {
                switch (clickState)
                {
                case ClickStates.Add:
                    if (selectedNode != null && selectedNode != clickedNode)
                    {
                        IEdge edge = graph.AddEdge(clickedNode, selectedNode, DefaultLength);
                    }
                    break;

                case ClickStates.Delete:
                    graph.DeleteEdge(clickedEdge);
                    break;
                }
            }
            clickedNode = null;
            clickedEdge = null;
            clickState  = ClickStates.NoClick;
            draw();
        }
Example #5
0
        private MouseData GenerateMouseData()
        {
            oldMS = newMS;
            newMS = Mouse.GetState();

            Vector2 screenPosition         = new Vector2(newMS.X, newMS.Y);
            Vector2 previousScreenPosition = new Vector2(oldMS.X, oldMS.Y);
            Vector2 worldPosition          = Vector2.Transform(screenPosition, Matrix.Invert(camera.Transform));

            ClickStates leftClick   = GetClickState(oldMS.LeftButton, newMS.LeftButton);
            ClickStates rightClick  = GetClickState(oldMS.RightButton, newMS.RightButton);
            ClickStates middleClick = GetClickState(oldMS.MiddleButton, newMS.MiddleButton);

            float scrollDelta = newMS.ScrollWheelValue - oldMS.ScrollWheelValue;

            MouseData data = new MouseData(screenPosition, previousScreenPosition, worldPosition, previousWorldPosition, leftClick,
                                           rightClick, middleClick, scrollDelta);

            previousWorldPosition = worldPosition;

            return(data);
        }
Example #6
0
    void Update()
    {
        if (clickState == ClickStates.release)
        {
            clickState = ClickStates.released;
        }

        if (!Application.isEditor)
        {
            if (Input.touchCount > 0)
            {
                Touch touch = Input.GetTouch(0);

                if (touch.position.y > sliderHeight)
                {
                    switch (touch.phase)
                    {
                    case TouchPhase.Began:
                        clickState = ClickStates.press;
                        break;

                    case TouchPhase.Ended:
                        clickState = ClickStates.release;
                        break;

                    default:
                        clickState = ClickStates.hold;
                        break;
                    }
                }
                else
                {
                    clickState = ClickStates.slider;
                }
            }
        }
        else
        {
            if (Input.mousePosition.y > sliderHeight)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    clickState = ClickStates.press;
                }
                else
                {
                    if (Input.GetMouseButton(0))
                    {
                        clickState = ClickStates.hold;
                    }
                    else
                    {
                        if (Input.GetMouseButtonUp(0))
                        {
                            clickState = ClickStates.release;
                        }
                    }
                }
            }
            else
            {
                clickState = ClickStates.slider;
            }
        }

        switch (clickState)
        {
            //case ClickStates.idle:
            //    Rod.instance.states = Rod.States.idle;
            //    break;

            //case ClickStates.press:
            //    Rod.instance.states = Rod.States.press;
            //    break;

            //case ClickStates.hold:
            //    Rod.instance.states = Rod.States.hold;
            //    break;

            //case ClickStates.release:
            //Rod.instance.states = Rod.States.release;
            //break;
        }
    }
Example #7
0
        private void imDrawSpace_MouseDown(object sender, MouseEventArgs e)
        {
            if (nodesEdgesState == NodesEdges.Nodes)
            {
                switch (mouseOn)
                {
                case NodesEdges.None:
                    if (e.Button == MouseButtons.Left)
                    {
                        clickState = ClickStates.Add;
                    }
                    break;

                case NodesEdges.Nodes:
                    if (e.Button == MouseButtons.Left)
                    {
                        clickedNode = selectedNode;
                        clickState  = ClickStates.Move;
                    }

                    if (e.Button == MouseButtons.Right)
                    {
                        clickedNode = selectedNode;
                        clickState  = ClickStates.Delete;
                    }
                    break;

                case NodesEdges.Edges:
                    if (e.Button == MouseButtons.Left)
                    {
                        clickedEdge = selectedEdge;
                        cbEdgeSizeChange.SelectedItem = selectedEdge;
                    }
                    break;
                }
            }
            else
            {
                switch (mouseOn)
                {
                case NodesEdges.Edges:
                    if (e.Button == MouseButtons.Right)
                    {
                        clickedEdge = selectedEdge;
                        clickState  = ClickStates.Delete;
                    }
                    if (e.Button == MouseButtons.Left)
                    {
                        clickedEdge = selectedEdge;
                        cbEdgeSizeChange.SelectedItem = selectedEdge;
                    }

                    break;

                case NodesEdges.Nodes:
                    if (e.Button == MouseButtons.Left)
                    {
                        clickedNode = selectedNode;
                        clickState  = ClickStates.Add;
                    }

                    break;
                }
            }
        }