コード例 #1
0
 public void Pull()
 {
     if (value != 1000000)
     {
         // Poll events from joystick
         joystick.Poll();
         var datas = joystick.GetBufferedData();
         foreach (var state in datas)
         {
             key   = Convert.ToString(state.Offset);
             value = state.Value;
         }
     }
 }
コード例 #2
0
        public void readInput()
        {
            if (gamepadDevice == null)
            {
                return;
            }

            SharpDX.DirectInput.Joystick joystick = new SharpDX.DirectInput.Joystick(directInput, gamepadDevice.InstanceGuid);
            joystick.Properties.BufferSize = 128;

            joystick.Acquire();
            while (true)
            {
                if (joystick.IsDisposed)
                {
                    return;
                }
                joystick.Poll();
                var datas = joystick.GetBufferedData();
                foreach (var state in datas)
                {
                    if (state.Offset.ToString().Equals("X"))
                    {
                        valueX = state.Value;
                        Console.WriteLine(valueX);
                    }
                    else if (state.Offset.ToString().Equals("Y"))
                    {
                        valueY = state.Value;
                    }
                    else if (state.Offset.ToString().Equals("Buttons0"))
                    {
                        switch (state.Value)
                        {
                        case 0: isButtonClicked = false; break;

                        case 128: isButtonClicked = true; break;
                        }
                    }
                    else if (state.Offset.ToString().Equals("Z"))
                    {
                        valueTriggers = state.Value;
                    }
                }
            }
        }
コード例 #3
0
        public void Update()
        {
            if (dxJoystick == null)
            {
                return;
            }

            // Poll events from joystick
            dxJoystick.Poll();
            var data = dxJoystick.GetBufferedData();

            foreach (var state in data)
            {
                switch (state.Offset)
                {
                // left stick: [0, 65535] = [left max, right max]
                case JoystickOffset.X:
                    axis[0] = Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0);
                    break;

                // left stick: [0, 65535] = [up max, down max]
                case JoystickOffset.Y:
                    axis[1] = Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0);
                    break;

                // left stick rotation : [0, 65535] = [up max, down max]
                case JoystickOffset.RotationZ:
                    axis[2] = Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0);
                    break;

                // left throttle: [32768, 65535] = [neutral, full]
                case JoystickOffset.Sliders0:
                    axis[3] = -Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0);
                    break;

                // A button: [zero, nonzero] = [release, push]
                case JoystickOffset.Buttons0:
                    button[0] = (state.Value != 0);
                    break;

                // B
                case JoystickOffset.Buttons1:
                    button[1] = (state.Value != 0);
                    break;

                // X
                case JoystickOffset.Buttons2:
                    button[2] = (state.Value != 0);
                    break;

                // Y
                case JoystickOffset.Buttons3:
                    button[3] = (state.Value != 0);
                    break;

                // L
                case JoystickOffset.Buttons4:
                    button[4] = (state.Value != 0);
                    break;

                // R
                case JoystickOffset.Buttons5:
                    button[5] = (state.Value != 0);
                    break;

                    //case JoystickOffset.Sliders0:
                    //    param.MotorGainX = 1.0f - (float)state.Value / (2 << 16);
                    //    param.MotorGainX *= param.SliderGain;
                    //    param.MotorGainY = param.MotorGainX;
                    //    break;
                    //case JoystickOffset.PointOfViewControllers0:
                    //    switch (state.Value)
                    //    {
                    //        case -1:
                    //            poVCtrl0 = Direction.Stop;
                    //            break;
                    //        case 0:
                    //            poVCtrl0 = Direction.Up;
                    //            break;
                    //        case 9000:
                    //            poVCtrl0 = Direction.Right;
                    //            break;
                    //        case 18000:
                    //            poVCtrl0 = Direction.Down;
                    //            break;
                    //        case 27000:
                    //            poVCtrl0 = Direction.Left;
                    //            break;
                    //    }
                    //
                    //    if (poVCtrl0 == Direction.Stop)
                    //    {
                    //        outZ = 0;
                    //    }
                    //    break;
                    //case JoystickOffset.Buttons0:
                    //    stop = true;
                    //    break;
                    //case JoystickOffset.Buttons6:
                    //    MotorClient.Send("SHUTDOWN\n");
                    //    break;
                }

                //switch (poVCtrl0)
                //{
                //    case Direction.Up:
                //        outZ += 0.25;
                //        break;
                //    case Direction.Down:
                //        outZ -= 0.25;
                //        break;
                //}
            }
        }