示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }