Eu tenho um controlador XBox360 que gostaria de usar como entrada para um aplicativo.
O que não consigo descobrir é a melhor maneira de expor isso por meio de uma interface.
Nos bastidores, a classe que lida com o (s) controlador (es) depende do estado do botão de busca.
Inicialmente, tentei algo link:
Event ButtonPressed() as ButtonEnum
onde ButtonEnum
estava ButtonRed
, ButtonStart
, etc ...
Isso é um pouco limitado, pois suporta apenas pressionamentos de botão, não mantém / padrões (pressione duas vezes, etc.)
A próxima idéia era simplesmente expor o estado do botão ao aplicativo, por exemplo
Property RedPressed as Boolean
Property StartPressed as Boolean
Property Thumb1XAxis as Double
Isso é muito flexível, mas na verdade força muito trabalho no aplicativo e exige que ele seja pesquisado - eu preferiria o evento, se possível.
Eu considerei adicionar vários eventos, por exemplo:
Event ButtonPressed(Button as ButtonEnum)
Event ButtonPressedTwice(Button as ButtonEnum)
Event ButtonHeldStart(Button as ButtonEnum)
Event ButtonHeldEnd(Button as ButtonEnum)
mas isso parece um pouco desajeitado e foi uma dor real na tela "Botão de ligação".
Alguém pode me indicar a maneira "correta" de lidar com as entradas dos controladores.
NB: Estou usando o SlimDX dentro da classe que implementa a interface. Isso me permite ler o estado com muita facilidade. Quaisquer alternativas que resolveriam meu problema também são apreciadas