bool HandleClicks(GamePadState now, GamePadState before) { if (GamePadHelper.IsShoulderPressed(now)) { return(false); } // Left click if (GamePadHelper.IsPressDown(now.Buttons.A, before.Buttons.A)) { _Input.Mouse.LeftButtonDown(); } else if (GamePadHelper.IsPressUp(now.Buttons.A, before.Buttons.A)) { _Input.Mouse.LeftButtonUp(); } // Right click if (GamePadHelper.IsPressDown(now.Buttons.B, before.Buttons.B)) { _Input.Mouse.RightButtonDown(); } else if (GamePadHelper.IsPressUp(now.Buttons.B, before.Buttons.B)) { _Input.Mouse.RightButtonUp(); } return(false); }
bool HandleInput(GamePadState now, GamePadState before) { if (GamePadHelper.IsShoulderPressed(now)) { return(false); } if (_GC && _Scene && now.Buttons.LeftShoulder == ButtonState.Released && now.Buttons.RightShoulder == ButtonState.Released) { return(HandleGUI(now, before) || HandleSekkusu(now, before)); } return(false); }
bool MoveCamera(GamePadState state, GamePadState prevState) { if (GamePadHelper.IsShoulderPressed(state)) { return(false); } if (_Camera) { var leftThumb = new Vector2(state.ThumbSticks.Left.X, state.ThumbSticks.Left.Y); var rightThumb = new Vector2(state.ThumbSticks.Right.X, state.ThumbSticks.Right.Y); bool leftTrigger = state.Triggers.Left > TRIGGER_THRESHOLD; bool rightTrigger = state.Triggers.Right > TRIGGER_THRESHOLD; if (leftTrigger || rightTrigger) { // Zoom _DistanceField.SetValue(_Camera, Mathf.Max(0.1f, _Camera.Distance - rightThumb.y * Time.deltaTime * 2)); _Messages.Enqueue(() => { _Camera.Rotate(new Vector3(0, -rightThumb.x, 0) * Time.deltaTime * 100); }); } if (leftTrigger) { // Pan 1 _Camera.Translate(leftThumb * Time.deltaTime * 100, false); } else if (rightTrigger) { // Pan 2 _Camera.Translate(new Vector3(leftThumb.x, 0, leftThumb.y) * Time.deltaTime * 100, false); } else { // Move _Messages.Enqueue(() => { _Camera.Rotate(new Vector3(rightThumb.y, -rightThumb.x, 0) * Time.deltaTime * 100); }); } } return(false); }
bool MoveMouse(GamePadState now, GamePadState before) { if (now.Triggers.Left < TRIGGER_THRESHOLD && now.Triggers.Right < TRIGGER_THRESHOLD && !GamePadHelper.IsShoulderPressed(now)) { // Move cursor _Input.Mouse.MoveMouseBy((int)(now.ThumbSticks.Left.X * Time.deltaTime * 700), (int)(-now.ThumbSticks.Left.Y * Time.deltaTime * 700)); } return(false); }