У меня есть контроллер XBox360, который я хотел бы использовать в качестве ввода для приложения.
Что я не могу понять, так это лучший способ продемонстрировать это через интерфейс.
За кулисами класс, который обрабатывает контроллеры, зависит от состояния кнопки опроса.
Я изначально пробовал что-то связать:
Event ButtonPressed() as ButtonEnum
где ButtonEnum
был ButtonRed
, ButtonStart
и т.д ...
Это немного ограничено в том, что он поддерживает только нажатия кнопок, а не удержания / паттерны (дважды нажмите и т. Д.)
Следующая идея состояла в том, чтобы просто показать состояние кнопки приложению, например
Property RedPressed as Boolean
Property StartPressed as Boolean
Property Thumb1XAxis as Double
Это очень гибко, но на самом деле требует слишком много работы в приложении и требует опроса приложения - я бы предпочел, чтобы события были управляемыми, если это возможно.
Я подумал добавить несколько событий, например:
Event ButtonPressed(Button as ButtonEnum)
Event ButtonPressedTwice(Button as ButtonEnum)
Event ButtonHeldStart(Button as ButtonEnum)
Event ButtonHeldEnd(Button as ButtonEnum)
но это кажется немного неуклюжим и было настоящей болью на экране «кнопки привязки».
Может кто-нибудь, пожалуйста, укажите мне на «правильный» способ обработки входов от контроллеров.
NB: я использую SlimDX внутри класса, который реализует интерфейс. Это позволяет мне очень легко читать состояние. Любые альтернативы, которые решат мою проблему, также приветствуются