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; } } }
private void changeStates() { if (this.states == ClickStates.firstClick) { this.states = ClickStates.secondClick; } else if (this.states == ClickStates.secondClick) { this.states = ClickStates.firstClick; } }
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; }
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(); }
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); }
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; } }
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; } } }