Как использовать ControllerListener jinput Java

Как добавить ControllerListener к контроллеру в библиотеке jinput. Я знаю, что класс ControllerListener является интерфейсом, и что в ControllerEnvironment есть метод для добавления прослушивателя, но даже если я делаю это, ничего не происходит, как мне сделать это, чтобы запустить его?

1 ответ

Решение

Просто нет плагинов, которые запускают методы ControllerListener. Вероятно, не будет никаких плагинов от создателя, так как проект долгое время не обновлялся, а последнее обновление было просто для того, чтобы убрать уведомление о том, что Windows 10 неизвестна.

В настоящее время ваши единственные решения:

  • метод poll контроллера возвращает логическое значение. Если это логическое значение false, то контроллер был удален.
  • написать свой собственный плагин или изменить существующий для запуска методов в интерфейсе ControllerListener
  • Восстанавливайте среду каждые несколько секунд и проверяйте различия между новым массивом контроллеров и старым.

Для последнего решения недостаточно просто вызвать ControllerEnvironment.getDefaultEnvironment(). GetControllers(). Вы должны снова вызвать конструктор плагинов. Поскольку большинство классов плагинов доступны для просмотра пакетов, вам, возможно, придется отредактировать исходный код, чтобы сделать их общедоступными. DirectAndRawEnvironmentPlugin уже имеет открытый конструктор. так что вы можете сделать что-то вроде этого:

ControllerEnvironment env = new DirectAndRawEnvironmentPlugin();
if(!env.isSupported()) {
    env = ControllerEnvironment.getDefaultEnvironment();
}
Другие вопросы по тегам