SDL 2で個のマウスをに扱うことは可能ですか?複数のマウスをSDL2で追跡できますか?
SDL_MOUSEBUTTONDOWN
-eventでは、どのマウスを使用してもはゼロです。 (USBを介して私のOpenSuse maschineに2台のマウスが接続されています)
もしそうなら、どうすればいいですか?
SDL 2で個のマウスをに扱うことは可能ですか?複数のマウスをSDL2で追跡できますか?
SDL_MOUSEBUTTONDOWN
-eventでは、どのマウスを使用してもはゼロです。 (USBを介して私のOpenSuse maschineに2台のマウスが接続されています)
もしそうなら、どうすればいいですか?
The SDL wikiは言う:
これが唯一のデスクトップGUIの概念と「マウス」を論じていることに注意してください。あなたは(通常は)1つのシステムカーソルを持ち、OSはハードウェアの詳細を隠します。 10匹のマウスを接続すると、10匹すべてがその1匹のカーソルを動かす。多くのアプリケーションやゲームではこれが完璧です。このAPIは、誕生以来数百ものSDLプログラムに対応しています。
少なくとも平凡なSDLを使用すると、あなたは運が悪いようです。あなたがLinuxにいるので(おそらくXorgを使用しています)、xinputが複数の入力をどのように処理するかを調べることができます。 source code for testing XI2 eventsが特に有用である可能性がある。例えば
は、私のマシン上でxinput
は、デバイスの全体の束を示しています
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated Camera id=10 [slave keyboard (3)]
↳ HID 046a:0011 id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
私は、このようなただ一つのデバイス(例えば、私のUSBマウス)のためのイベントを取得するtest-xi2
コマンドを使用することができます。
$ xinput test-xi2 11
...
EVENT type 17 (RawMotion)
device: 11 (11)
detail: 0
valuators:
flags:
0: -5.25 (-3.00)
1: 12.75 (8.00)
...
これは、マウスによって引き起こされたポインタの動きだけを出力しますが、マウスの動きは出力されません。トラックパッドでxinputがオプションの場合、source codeは、あなた自身の仕組みを実装するための正しい軌道に乗るかもしれません。
あなたは 'event.which 'を意味しましたか? event.buttonはオブジェクトではなくuint8であると表示されます – jhbh
[SDL wiki](http://wiki.libsdl.org/CategoryMouse)は次のように述べています:これはデスクトップのGUIという概念で "マウス"についてのみ説明しています。あなたは(通常は)1つのシステムカーソルを持ち、OSはハードウェアの詳細を隠します。 ** 10個のマウスを接続すると、すべてのカーソルが1つのカーソルを移動します。**多くのアプリケーションやゲームでは、これは完璧です。このAPIは、生まれてから数百ものSDLプログラムに役立ちました。 。 – mindriot
心配ありがとうございます。あなたがしたい場合は、これを回答として投稿することができます。 – user1511417