14

XBox 360 コントローラーから入力を受け取る必要があるプログラムを作成しています。入力は、私が構築している RC ヘリコプターにワイヤレスで送信されます。

これまでのところ、これは DirectX の XInput ライブラリ、または XNA の Input フレームワークのいずれかを使用して実行できることを学びました。

他に利用可能なオプションがあるかどうか疑問に思っています。私のプログラムの範囲はかなり小さく、DirectX や XNA のような大規模なゲーム ライブラリをインストールする必要があるように思えます。さらに、このプログラムはマイクロソフト固有のものではなく、クロス プラットフォームであってほしいと思います。

Python のようなものでコントローラーの入力を取得できる簡単で軽量な方法はありますか?

いくつかのコメントに答えるために編集します。

ヘリコプターには合計 6 つのプロペラがあり、3 つの同軸ペアで配置されます。基本的にはこれと非常に似ていますが、15,000 ドルではなく約 1,000 ドルかかるだけです。オンボード処理には Arduino を使用し、ワイヤレス制御には Zigbee を使用します。

360コントローラーはデザインが良いので選びました。非常に人間工学的で、必要なすべての制御入力を備えています。ヘリコプターの制御に慣れている方は、左のジョイスティックでコレクティブを制御し、右のジョイスティックでピッチとロールを制御し、アナログ トリガーでヨーを制御します。アナログ トリガーは、360 コントローラーの大きな特徴です。PSおよび他のほとんどはそれらを持っていません。

プロジェクトの Web ページがありますが、まだかなりまばらです。設計全体を文書化する予定なので、最終的には興味深いものになるでしょう。
http://tricopter.googlecode.com
余談ですが、googlecode プロジェクトにブログ機能を持たせることで、Google を殺すことになるでしょうか?

可能であれば、360 コントローラーの入力プログラムを Linux と Windows の両方で実行したいと考えています。最終的には、コントローラーを組み込みマイクロコントローラー ボード (Arduino など) に直接接続して、コンピューターを経由する必要がないようにしたいと考えていますが、現時点では優先度は高くありません。

4

4 に答える 4

9

それほど難しいことではありません。前の人が言ったように、SDL ライブラリを使用して xbox コントローラーのステータスを読み取ることができ、それを使って好きなことを行うことができます。

SDL チュートリアルがあります: http://sdl.beuc.net/sdl.wiki/Handling_Joysticksはかなり便利です。

Xbox コントローラーには次のものがあることに注意してください。

  • 2 つのジョイスティック:
    • 左ジョイスティックは軸 0 & 1 です。
    • 左トリガーは軸 2 です。
    • 右のジョイスティックは軸 3 と 4 です。
    • 右トリガーは第5軸
  • 1 つの帽子 (方向パッド)
  • 11個のSDLボタン
    • そのうちの 2 つはジョイスティック センター プレスです。
  • 2 つのトリガー (軸として機能、上記を参照)

今後の SDL v1.3 では、フォース フィードバック (別名ハプティック) もサポートされます。

このスレッドは数年前からあるので、あなたはすでに何かを行っていると思います。この投稿は主に将来の訪問者に知らせるためのものです.

于 2011-03-13T21:32:06.683 に答える
7

PyGameはジョイスティックを読み取ることができます。これは、X360 コントローラーが PC 上に表示されるものです。

于 2009-03-31T02:16:35.800 に答える
1

DirectX への依存関係を追加したくない場合は、古い Windows ジョイスティック API (プラットフォーム SDK の [Windows マルチメディア] -> [ジョイスティック リファレンス]) を使用できます。

標準の無料のクロスプラットフォーム ゲーム ライブラリは Simple DirectMedia Layer で、元々は Windows ゲームを Unix (Linux) システムに移植するために作成されました。これは非常に基本的で軽量な API であり、各システムの機能の最小限のサブセットをサポートする傾向があり、ほとんどの主要言語のバインディングを備えています。非常に基本的なジョイスティックとゲームパッドのサポート (たとえば、フォース フィードバックなし) がありますが、ニーズには十分かもしれません。

于 2009-03-31T02:36:21.820 に答える
0

おそらく、Mono.Xna ライブラリに GamePad サポートが追加されているため、探していたクロスプラットフォーム機能が提供されます:
http://code.google.com/p/monoxna/

ライブラリが重すぎるという懸念がある限り、確かに、このオプションについては真実かもしれません...しかし、将来的には素晴らしい視覚化を行う機会が開かれる可能性があります.

免責事項: 私は mono xna プロジェクトの状況に詳しくないため、この機能がまだ追加されていない可能性があります。それでも、「これはオプションです:-)

于 2009-06-04T13:48:43.157 に答える