The SDL wiki sagt:
Bitte beachten Sie, dass dies diskutiert ONLY "Mäuse" mit dem Begriff des Desktop-GUI. Sie haben (normalerweise) einen Systemcursor und das Betriebssystem verbirgt die Hardwaredetails von Ihnen. Wenn Sie 10 Mäuse einstecken, bewegen alle zehn diesen einen Cursor. Für viele Anwendungen und Spiele ist dies perfekt, und diese API hat seit ihrer Geburt Hunderte von SDL-Programmen gut bedient.
Es sieht so aus, als ob Sie Pech hätten, zumindest mit einfachem SDL. Da Sie sich in Linux befinden (und vermutlich Xorg verwenden), könnten Sie einen Blick darauf werfen, wie xinput mehrere Eingaben verarbeitet; die source code for testing XI2 events kann besonders nützlich sein.
Zum Beispiel auf meiner Maschine xinput
zeigt eine ganze Reihe von Geräten:
$ 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)]
Ich kann dann mit dem test-xi2
Befehl Ereignisse bekommen für nur ein Gerät (zB meine USB-Maus) wie folgt aus:
Dies gibt nur Zeigerbewegungen aus, die von meiner Maus verursacht werden, aber nicht solche, die z mit dem Trackpad. Wenn xinput eine Option für Sie ist, kann die source code Sie auf den richtigen Weg bringen, um Ihren eigenen Mechanismus zu implementieren.
meinst du 'event.which '? event.button scheint ein uint8 zu sein kein Objekt – jhbh
[Das SDL-Wiki] (http://wiki.libsdl.org/CategoryMouse) sagt: _Beachte bitte, dass dies NUR "Mäuse" mit dem Begriff der Desktop-GUI diskutiert. Sie haben (normalerweise) einen Systemcursor und das Betriebssystem verbirgt die Hardwaredetails von Ihnen. ** Wenn Sie 10 Mäuse anschließen, bewegen alle zehn diesen einen Cursor. ** Für viele Anwendungen und Spiele ist dies perfekt, und diese API hat Hunderte von SDL-Programmen gut seit seiner Geburt gedient. _ Sieht aus, als ob Sie Pech haben könnten . – mindriot
Danke gedanken. Sie können dies als eine Antwort veröffentlichen, wenn Sie möchten. – user1511417