private void HandleMouseInput(InputState input) { Vector2 point = new Vector2(input.CurrentMouseState.X, input.CurrentMouseState.Y); if (input.LastMouseState.LeftButton == ButtonState.Released && input.CurrentMouseState.LeftButton == ButtonState.Pressed) { //create mouse spring _pickedGeom = PhysicsSimulator.Collide(point); if (_pickedGeom != null) { _mousePickSpring = SpringFactory.Instance.CreateFixedLinearSpring(PhysicsSimulator, _pickedGeom.Body, _pickedGeom.Body. GetLocalPosition(point), point, 20, 10); } } else if (input.LastMouseState.LeftButton == ButtonState.Pressed && input.CurrentMouseState.LeftButton == ButtonState.Released) { //destroy mouse spring if (_mousePickSpring != null && _mousePickSpring.IsDisposed == false) { _mousePickSpring.Dispose(); _mousePickSpring = null; } } //move anchor point if (input.CurrentMouseState.LeftButton == ButtonState.Pressed && _mousePickSpring != null) { _mousePickSpring.WorldAttachPoint = point; } }
private void SimulatorView_MouseLeftButtonDown(object sender, MouseEventArgs e) { Vector2 point = new Vector2((float)(e.GetPosition(this).X), (float)(e.GetPosition(this).Y)); _pickedGeom = physicsSimulator.Collide(point); if (_pickedGeom != null) { _mousePickSpring = SpringFactory.Instance.CreateFixedLinearSpring(physicsSimulator, _pickedGeom.Body, _pickedGeom.Body.GetLocalPosition( point), point, 20, 10); _mouseSpringBrush = AddFixedLinearSpringBrushToCanvas(_mousePickSpring); } }
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { base.OnMouseLeftButtonDown(e); Vector2 point = new Vector2((float)(e.GetPosition(this).X), (float)(e.GetPosition(this).Y)); pickedGeom = physicsSimulator.Collide(point); if (pickedGeom != null) { mousePickSpring = SpringFactory.Instance.CreateFixedLinearSpring(physicsSimulator, pickedGeom.Body, pickedGeom.Body.GetLocalPosition( point), point, 20, 10); mouseSpringVisual = AddFixedLinearSpringVisualToCanvas(mousePickSpring); } }