gpt4 book ai didi

c# - 使用 C# .NET 从操纵杆获取输入

转载 作者:IT王子 更新时间:2023-10-29 04:41:35 25 4
gpt4 key购买 nike

我在 Google 上四处搜索这个,但我想到的唯一东西已经过时而且没有用。

有没有人知道如何使用 C# .NET 获取操纵杆数据?

最佳答案

由于这是我在用 C# 研究操纵杆/游戏 handle 输入时在 google 上获得的最高点击率,我想我应该发布一个回复以供其他人查看。

我发现最简单的方法是使用 SharpDX 和 DirectInput。您可以通过 NuGet (SharpDX.DirectInput) 安装它

之后,只需调用几个方法即可:

Sample code from SharpDX

static void Main()
{
// 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
var joystick = new Joystick(directInput, joystickGuid);

Console.WriteLine("Found Joystick/Gamepad with GUID: {0}", joystickGuid);

// Query all suported ForceFeedback effects
var allEffects = joystick.GetEffects();
foreach (var effectInfo in allEffects)
Console.WriteLine("Effect available {0}", effectInfo.Name);

// Set BufferSize in order to use buffered data.
joystick.Properties.BufferSize = 128;

// Acquire the joystick
joystick.Acquire();

// Poll events from joystick
while (true)
{
joystick.Poll();
var datas = joystick.GetBufferedData();
foreach (var state in datas)
Console.WriteLine(state);
}
}

希望对您有所帮助。

我什至让它与 DualShock3 和 MotioninJoy 驱动程序一起使用。

关于c# - 使用 C# .NET 从操纵杆获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com