アプリケーションの入力として使用したいXBox360コントローラーがあります。
私が解決できないのは、インターフェースを介してこれを公開するベストプラクティスの方法です。
舞台裏では、コントローラーを処理するクラスはポーリングボタンの状態に依存しています。
最初に何かリンクを試しました:
Event ButtonPressed() as ButtonEnum
どこにButtonEnum
あったButtonRed
、ButtonStart
など
これは、ボタンの押下のみをサポートし、ホールド/パターン(2回押すなど)をサポートしないという点で少し制限されています
次のアイデアは、単にボタンの状態をアプリに公開することです
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)
しかし、これは少し不格好なようで、「バインドボタン」画面に大きな痛みがありました。
誰かが、コントローラーからの入力を処理する「正しい」方法を教えてください。
注:インターフェイスを実装するクラス内でSlimDXを使用しています。これにより、状態を非常に簡単に読み取ることができます。私の問題を解決する代替品も歓迎します