private void HandleController()
        {
            if (Controller.IsConnected)
            {
                var   s = Controller.GetState();
                float i = s.Gamepad.RightTrigger;
                altitude = (i / 127) - 1f;;

                float x = s.Gamepad.LeftThumbX;
                float y = s.Gamepad.LeftThumbY;

                currentSpeed = RUN_SPEED * (y / 32768);

                Rotation = new Vector3(0, (Rotation.Y - x / 42768), 0);

                left  = s.Gamepad.Buttons == SharpDX.XInput.GamepadButtonFlags.DPadLeft;
                right = s.Gamepad.Buttons == SharpDX.XInput.GamepadButtonFlags.DPadRight;
                down  = s.Gamepad.Buttons == SharpDX.XInput.GamepadButtonFlags.DPadDown;
                up    = s.Gamepad.Buttons == SharpDX.XInput.GamepadButtonFlags.DPadUp;

                return;
            }

            KeyboardState state = Keyboard.GetState();

            up    = state.IsKeyDown(Key.Up);
            left  = state.IsKeyDown(Key.Left);
            right = state.IsKeyDown(Key.Right);
            down  = state.IsKeyDown(Key.Down);
            space = state.IsKeyDown(Key.Space);
        }
示例#2
0
        private void joy_update(object sender, EventArgs e)
        {
            if (ctrl != null && ctrl.IsConnected == true)
            {
                state   = ctrl.GetState();
                gamepad = ctrl.GetState().Gamepad;
                var joy     = new xbox_joy();
                var buttons = "";
                #region get joy data
                gamepad = ctrl.GetState().Gamepad;
                buttons = gamepad.Buttons.ToString();
                joy.A   = buttons.Contains("A");
                joy.B   = buttons.Contains("B");
                joy.X   = buttons.Contains("X");
                joy.Y   = buttons.Contains("Y");

                joy.start          = buttons.Contains("Start");
                joy.back           = buttons.Contains("Back");
                joy.left_shoulder  = buttons.Contains("LeftShoulder");
                joy.right_shoulder = buttons.Contains("RightShoulder");

                joy.rightthumb = buttons.Contains("RightThumb");
                joy.leftthumb  = buttons.Contains("LeftThumb");

                joy.dpadUp    = buttons.Contains("DPadUp");
                joy.dpadLeft  = buttons.Contains("DPadLeft");
                joy.dpadDown  = buttons.Contains("DPadDown");
                joy.dpadRight = buttons.Contains("DPadRight");

                joy.left_axis_x  = gamepad.LeftThumbX + 32768;
                joy.left_axis_y  = gamepad.LeftThumbY + 32768;
                joy.right_axis_x = gamepad.RightThumbX + 32768;
                joy.right_axis_y = gamepad.RightThumbY + 32768;

                joy.left_trigger  = gamepad.LeftTrigger;
                joy.right_trigger = gamepad.RightTrigger;
                #endregion

                this.label_left_trigger.Text  = joy.left_trigger.ToString();
                this.label_right_trigger.Text = joy.right_trigger.ToString();

                this.label_left_axis_x.Text  = joy.left_axis_x.ToString();
                this.label_left_axis_y.Text  = joy.left_axis_y.ToString();
                this.label_right_axis_x.Text = joy.right_axis_x.ToString();
                this.label_right_axis_y.Text = joy.right_axis_y.ToString();

                if (joy.start)
                {
                    this.checkBox_use_joy.Checked = true;
                }
                if (joy.back)
                {
                    this.checkBox_use_joy.Checked = false;
                }

                this.checkBox_use_joy.Visible = true;
                // MOVE !!!!
                if (checkBox_use_joy.Checked == true)
                {
                    try
                    {
                        ProfilePositionMode ppm = _epos_A.Operation.ProfilePositionMode;
                        ppm.ActivateProfilePositionMode();
                        textBoxAOM_A.Text = _epos_A.Operation.OperationMode.GetOperationModeAsString();
                        ppm.MoveToPosition(joy.left_axis_x, true, true);
                    }
                    catch { }

                    try
                    {
                        ProfilePositionMode ppm = _epos_B.Operation.ProfilePositionMode;
                        ppm.ActivateProfilePositionMode();
                        textBoxAOM_B.Text = _epos_B.Operation.OperationMode.GetOperationModeAsString();
                        ppm.MoveToPosition(joy.right_axis_x, true, true);
                    }
                    catch { }
                }
            }
            else
            {
                this.checkBox_use_joy.Visible = false;
            }
        }
 public Controller()
 {
     index = SharpDX.XInput.UserIndex.One;
     gamepad = new SharpDX.XInput.Controller(index);
     state = gamepad.GetState();
 }