나는 C#과 Sharpdx에 관해 새삼이다. 며칠 동안이 코드 문제가 있으며 작동하지 않는 방법을 이해하지 못합니다! 이것은 조이스틱의 한 축의 값을 획득하여 양식의 텍스트 상자에 표시하는 간단한 작업입니다.SharpDX로 조이스틱을 취득
나는 Visual Studio 2010 Express에 대한 새로운 프로젝트를 만들었고 조이스틱 축 (X 축)의 값을 보여주기 위해 단추와 텍스트 상자가있는 Form을 만들었습니다.
아래 코드의 첫 번째 부분은 sharpdx 문서의 예제이며, 두 번째 부분은 약간 다릅니다.
문제는 값이
뭔가 잘못하지만 난 문제가 당신이 요구하고 있다는 것입니다 생각
private void button3_Click(object sender, EventArgs e)
{
// Initialize DirectInput
var directInput = new DirectInput();
// Find a Joystick Guid
var joystickGuid = Guid.Empty;
foreach (var deviceInstance in directInput.GetDevices(DeviceType.Gamepad, DeviceEnumerationFlags.AllDevices))
joystickGuid = deviceInstance.InstanceGuid;
// If Gamepad not found, look for a Joystick
if (joystickGuid == Guid.Empty)
foreach (var deviceInstance in directInput.GetDevices(DeviceType.Joystick, DeviceEnumerationFlags.AllDevices))
joystickGuid = deviceInstance.InstanceGuid;
// If Joystick not found, throws an error
if (joystickGuid == Guid.Empty)
{
Console.WriteLine("No joystick/Gamepad found.");
Console.ReadKey();
Environment.Exit(1);
}
// Instantiate the joystick e stato
Joystick joystick = new Joystick(directInput, joystickGuid);
JoystickState stato = new JoystickState();
// specifico se relativo o assoluto
joystick.Properties.AxisMode = DeviceAxisMode.Absolute;
// effettuo un collegamento con il joystick
joystick.Acquire();
// qui faccio una acquisizione dello stato che memorizzo
joystick.Poll();
// effettuo una lettura dello stato
joystick.GetCurrentState(ref stato);
// stampo il valore dell'ordinata
textBox1.Text = stato.X.ToString();
}