2
XBoxコントローラーを抽象化する正しい方法
アプリケーションの入力として使用したい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を使用しています。これにより、状態を非常に簡単に読み取ることができます。私の問題を解決する代替品も歓迎します