【问题标题】:cant find joystick guid using sharpDX directinput使用sharpDX直接输入找不到操纵杆指南
【发布时间】:2016-02-24 13:37:48
【问题描述】:

我正在尝试将 ps3 控制器用于我正在创建的游戏。我将SharpDX.DirectInput 扩展下载到我的visual studio XNA 解决方案中,并使用了Taking input from a joystick with C# .NET 中Valdemar 的答案中看似简单的代码。我已经将问题缩小到他找不到控制器的 guid,也找不到其他 USB 连接设备(如键盘)的 guid。不过,它确实适用于我笔记本电脑的集成键盘。这是我的代码:

directInput = new DirectInput();
// Find a Joystick Guid
foreach (var deviceInstance in directInput.GetDevices(DeviceType.Gamepad, DeviceEnumerationFlags.AllDevices))
guid = deviceInstance.InstanceGuid;
//create joystick
if (guid!=Guid.Empty)
    controller = new Joystick(directInput, guid);

问题是控制器保持为空,这意味着 guid 保持为空,这意味着 GetDevices 方法没有找到游戏手柄。这很奇怪,因为控制器在 Windows 7 中完美运行,并且在设备管理器中作为 HID 和 Windows 类的 Microsoft 通用控制器可见。

顺便说一句,我在使用 Microsoft.DirectX.directInput 时遇到了同样的问题。

感谢阅读:)

【问题讨论】:

    标签: c# sharpdx joystick directinput


    【解决方案1】:

    我仍然不知道为什么它不起作用。但我尝试了更好的方法。通过 youtube 上的教程,我安装了一个驱动程序,它将 DS3 控制器“转换”为 xbox 控制器。换句话说,windows 现在认为连接了一个 xbox 控制器。

    现在我可以使用专为 xbox 360 控制器设计的 xna 库的 GamePad 类。

    http://steamcommunity.com/app/258970/discussions/0/613937306592303709/?l=dutch 阅读此链接的 cmets 以获取更多更新的驱动程序。

    【讨论】:

      【解决方案2】:

      一种可能的解决方案是将 DeviceType.Gamepad 更改为 DeviceType.Joystick

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多