У меня проблема с тем, чтобы геймпад работал правильно. Система устройств ввода Windows всегда путала меня, но после некоторых исследований я собрал следующее:
- XInput является последним / наиболее широко используемый API в DirectX для ввода геймпада
- DirectInput - это старый API, который не так популярен /используется (благодаря тому, что XInput проще и быстрее настроить)
- XInput поддерживает только контроллеры Xbox (Xbox 360 и, вероятно, Xbox One как ну)
- DirectInput поддерживает все типы устройств ввода, в том числе общие HID-совместимых геймпадов и контроллеров Xbox (хотя с меньшим количеством функций, чем через XInput, как поддержка гарнитуры)
моя проблема связана с получением геймпада Bluetooth (Amazon огонь ТВ игровой контроллер) для работы в играх на Windows. Очевидно, так как это не контроллер Xbox 360, заставить его работать на XInput-только игра будет требовать обходной. этот проект кажется, что делает фокус почти совершенно, по мере того как оно позволяет все входные устройства подражать входному сигналу Xbox360 и поэтому делать их совместимым с XInput.
однако, я столкнулся с несколькими корягами и я не могу сказать, по чьей вине они, и как их исправить. Одна проблема состоит в том, что триггеры L/R не обнаружены вообще. Зайдя в меню "Устройства и принтеры" и нажав на "настройки игрового контроллера" для моего контроллера позволяет мне проверить входы через этот знакомый экран:
нажатие триггеров вообще ничего не делает. Кроме того, если вы заметили, есть 15 кнопок входа. Это правильно, так как контроллер, который я тестирую, имеет 15 кнопок, однако 4 из этих кнопок являются кнопками мультимедиа, которые управляют ОС самостоятельно. Например, нажатие кнопки home на контроллере откроет мой интернет-браузер и выведет меня на домашнюю страницу. Нажатие других кнопок мультимедиа, по-видимому, ничего не делает.
мои вопросы:
-
Как заставить триггеры работать? Это проблема с водителем? Я думал, что HID-совместимые устройства должны сработать. Если Windows обнаружила все 15 кнопок, два аналоговых джойстика и один D-Pad, почему она не может обнаружить два триггера? HID-совместимые геймпады не поддерживают аналоговые триггеры, или это ошибка/проблема либо с самим контроллером, либо с драйвером геймпада Windows?
-
Как я могу возьмите под свой контроль 4 кнопки мультимедиа на устройстве? Наличие кнопки на геймпаде, которая переносит меня в мой интернет-браузер, довольно бесполезно и раздражает.
-
Если пользовательский драйвер абсолютно необходим для этого, можно ли написать его самостоятельно, не имея связи или помощи от производителя?
спасибо!