Unterstützt nur Python 3, weil es von Typins und einigen anderen coolen Python 3 -Dingen ist.
* 3.4+ Tatsächlich ist 3.10 ohnehin heraus, es gibt buchstäblich keinen Grund, die alten Versionen zu verwenden.
Da ich dieses Ding in meinem Projekt mit einiger Benutzeroberfläche und .. Dingen verwenden musste, habe ich es mit Multithreading -Unterstützung gestaltet (tatsächlich ist dies die einzige Option, LOL), also müssen Sie sich also keine Sorgen machen. Importieren Sie einfach das benötigte Gamepad, listen -Hörmethode und Sie können gut gehen.
Hier ist ein Beispiel:
# main.py
from time import sleep
from pygamepad . gamepads import Gamepad
def main ():
gamepad = Gamepad ()
gamepad . listen () # And that's it
# Now you can read gamepad values in the main thread
try :
while True :
print ( "START button value:" , gamepad . buttons . BTN_START . value )
sleep ( 0.01 )
except ( KeyboardInterrupt , SystemExit ):
# Kill gamepad's listening thread
gamepad . stop_listening ()
# And exit from the program
exit ()
if __name__ == "__main__" :
main ()Weitere Beispiele finden Sie im Beispiel -Ordner
OK, woher weiß ich, ohne das ganze Modulskript zu öffnen, welche Gamepad -Schaltflächen ich verwenden kann?
Da das Modul typisch angibt, können Sie nur überall gamepad.buttons schreiben. Alternativ können Sie einfach die Gamepad -Klasse öffnen und die gesamte Taste in der Buttons -Unterklasse sehen.
Welche Gamepads unterstützt es? Verteidiger X7 und Xbox 360 sicher. Nun, ich besitze nur den Verteidiger X7 Gamepad, also habe ich es im X-Input-Modus getestet, sodass es keinen Gyroskop- und Berührungsfunktionen gibt, aber Sie können Ihre Änderungen beitragen :)
Da Menschen wie jede Art von Gamepads (insbesondere für Chinesen) verwendet werden, kann es möglicherweise nicht über die Schachtel gelangen, oder einige Tasten können ausgetauscht werden. In diesem Fall können Sie in diesem Fall von der Standard -Gamepad -Klasse ( pygamepad.gamepads.default.Gamepad ) erben und einige Dinge für Ihren Fall verändern. Ich musste dies für mein Verteidiger x7 Gamepad tun, da Start- und Auswählen von Tasten aus irgendeinem Grund ausgetauscht wurden (es verwendet inputs unter der Haube und aus irgendeinem Grund werden die Schaltflächen 0x13a und 0x13b ausgetauscht oder idk). Ich habe also geändert, dass Start ausgewählt und ausgewählt wurde, um die Subklassen mit speziellen ButtonOverrides zu verwenden, wo Sie können.
# pygamepad/gamepads/defenderx7.py
from .. buttons import PressButton
from . default import Gamepad as DefaultGamepad
class Gamepad ( DefaultGamepad ):
class ButtonOverrides :
BTN_START = PressButton ( "BTN_SELECT" )
BTN_SELECT = PressButton ( "BTN_START" )