Ho un controller XBox360 che vorrei utilizzare come input per un'applicazione.
Quello che non riesco a capire è il modo migliore per esporre questo tramite un'interfaccia.
Dietro le quinte, la classe che gestisce i controller si basa sullo stato del pulsante di polling.
Inizialmente ho provato qualcosa link:
Event ButtonPressed() as ButtonEnum
dove ButtonEnum
era ButtonRed
, ButtonStart
, ecc ...
Questo è un po 'limitato in quanto supporta solo la pressione dei pulsanti, non le prese / i motivi (premere due volte, ecc.)
L'idea successiva era semplicemente esporre lo stato del pulsante all'app, ad es
Property RedPressed as Boolean
Property StartPressed as Boolean
Property Thumb1XAxis as Double
Questo è molto flessibile ma in realtà forza troppo lavoro nell'app e richiede l'app per il polling - preferirei se fosse guidato da eventi.
Ho preso in considerazione l'aggiunta di più eventi, ad esempio:
Event ButtonPressed(Button as ButtonEnum)
Event ButtonPressedTwice(Button as ButtonEnum)
Event ButtonHeldStart(Button as ButtonEnum)
Event ButtonHeldEnd(Button as ButtonEnum)
ma questo sembra un po 'goffo ed è stato un vero dolore nella schermata "Pulsante Bind".
Qualcuno può indicarmi il modo "corretto" di gestire gli input dai controller.
NB: sto usando SlimDX all'interno della classe che implementa l'interfaccia. Questo mi permette di leggere lo stato molto facilmente. Sono anche apprezzate tutte le alternative che potrebbero risolvere il mio problema