не могу найти руководство по джойстику с помощью прямого ввода SharDX

Я пытаюсь использовать контроллер PS3 для игры, которую я создаю. Я загрузил расширение sharpDX.DirectInput в свое решение XNA для визуальной студии и использовал, казалось бы, простой код из ответа Вальдемара в Получение данных с джойстика с помощью C# .NET. Я уже сузил проблему до того, что он не может найти ни guid контроллера, ни guid других USB-устройств, таких как клавиатура. Однако это работает для встроенной клавиатуры моего ноутбука. Вот мой код:

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 и как общий контроллер Microsoft для класса Windows.

Кстати, у меня возникла та же проблема с использованием Microsoft.DirectX.directInput.

Спасибо за чтение :)


person J.Somers    schedule 22.11.2015    source источник


Ответы (2)


Одним из возможных решений является изменение DeviceType.Gamepad на DeviceType.Joystick.

person George C.    schedule 01.01.2019

Я до сих пор не знаю, почему это не сработало. Но я пробовал кое-что получше. с помощью учебника на YouTube я установил драйвер, который «преобразовал» контроллер DS3 в контроллер xbox. Другими словами, Windows теперь думает, что подключен контроллер xbox.

Теперь я могу использовать класс GamePad библиотеки xna, предназначенный для контроллеров xbox 360.

http://steamcommunity.com/app/258970/discussions/0/613937306592303709/?l=dutch прочитайте комментарии по этой ссылке, чтобы узнать больше об обновлении драйверов.

person J.Somers    schedule 25.11.2015