Ich habe einen XBox360-Controller, den ich als Eingabe für eine Anwendung verwenden möchte.
Was ich nicht herausfinden kann, ist die Best-Practice-Methode, um dies über eine Schnittstelle herauszustellen.
Hinter den Kulissen ist die Klasse, die die Controller verwaltet, auf den Status der Abfragetasten angewiesen.
Ich habe anfangs etwas Link ausprobiert:
Event ButtonPressed() as ButtonEnum
wo ButtonEnum
war ButtonRed
, ButtonStart
usw ...
Dies ist insofern etwas eingeschränkt, als es nur das Drücken von Tasten und nicht das Halten / Mustern (zweimal drücken usw.) unterstützt.
Die nächste Idee war, einfach den Schaltflächenstatus für die App freizugeben, z
Property RedPressed as Boolean
Property StartPressed as Boolean
Property Thumb1XAxis as Double
Dies ist sehr flexibel, erzwingt jedoch zu viel Arbeit in der App und erfordert das Abfragen der App - ich würde es vorziehen, wenn es nach Möglichkeit ereignisgesteuert ist.
Ich habe darüber nachgedacht, mehrere Ereignisse hinzuzufügen, zB:
Event ButtonPressed(Button as ButtonEnum)
Event ButtonPressedTwice(Button as ButtonEnum)
Event ButtonHeldStart(Button as ButtonEnum)
Event ButtonHeldEnd(Button as ButtonEnum)
aber das scheint ein wenig klobig zu sein und war ein echtes Problem auf dem Bildschirm "Schaltfläche binden".
Kann mir jemand bitte den "richtigen" Weg weisen, um mit Eingaben von Controllern umzugehen.
NB: Ich benutze SlimDX in der Klasse, die das Interface implementiert. Dadurch kann ich den Status sehr leicht ablesen. Alle Alternativen, die mein Problem lösen würden, werden ebenfalls geschätzt