Tengo un controlador XBox360 que me gustaría usar como entrada para una aplicación.
Lo que no puedo resolver es la mejor forma de exponer esto a través de una interfaz.
Detrás de escena, la clase que maneja los controladores se basa en el estado del botón de sondeo.
Inicialmente probé algo enlace:
Event ButtonPressed() as ButtonEnum
donde ButtonEnum
estaba ButtonRed
, ButtonStart
etc ...
Esto es un poco limitado, ya que solo admite presionar botones, no retener / patrones (presionar dos veces, etc.)
La siguiente idea fue simplemente exponer el estado del botón a la aplicación, por ejemplo
Property RedPressed as Boolean
Property StartPressed as Boolean
Property Thumb1XAxis as Double
Esto es muy flexible, pero realmente obliga a trabajar demasiado en la aplicación y requiere que la aplicación realice una encuesta; preferiría que sea posible si se realiza un evento.
Pensé en agregar varios eventos, por ejemplo:
Event ButtonPressed(Button as ButtonEnum)
Event ButtonPressedTwice(Button as ButtonEnum)
Event ButtonHeldStart(Button as ButtonEnum)
Event ButtonHeldEnd(Button as ButtonEnum)
pero esto parece un poco torpe y fue un verdadero dolor en la pantalla "Botón de enlace".
¿Puede alguien indicarme la forma "correcta" de manejar las entradas de los controladores?
NB: estoy usando SlimDX dentro de la clase que implementa la interfaz. Esto me permite leer el estado muy fácilmente. Cualquier alternativa que resolvería mi problema también es apreciada