pygamepad
1.0.0
僅支持Python 3,因為TypeHintings和其他一些很酷的Python 3件。
* 3.4+實際上,無論如何,3.10都沒有,實際上沒有理由使用舊版本 -
由於我需要在項目中使用一些UI和..東西在項目中使用此內容,因此我在多線程支持(實際上,這是唯一的選擇大聲笑)中設計了它,因此不必為此擔心,只需導入所需的gamepad,fire fire listen方法就可以了。
這是一個例子:
# 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 ()在示例文件夾中可以找到更多示例
好的,如果不打開整個模塊腳本,我怎麼知道我可以使用哪個遊戲手柄按鈕?
由於模塊在任何地方都可以使用TypeHinting,您可以編寫gamepad.buttons和AutoComplete將向您顯示所有現有按鈕。另外,您可以只打開GamePad類,並查看其Buttons子類中的所有按鈕。
它支持哪些遊戲手柄? Defender X7和Xbox 360。好吧,我只有Defender X7 GamePad,所以我以X-Input模式進行了測試,因此沒有陀螺儀和触摸功能,但是您可以貢獻您的更改:)
由於人們可能會像任何類型的遊戲板一樣使用(尤其是中文),因此可能無法固定效果,或者可能會換一些按鈕等。在這種情況下,您可以從默認的GamePad類( pygamepad.gamepads.default.Gamepad )繼承並改變某些事情。我必須為我的Defender X7 GamePad這樣做,因為啟動和選擇按鈕由於某種原因被換了(它使用了引擎蓋下的inputs模塊,並且由於某些原因,換了0x13a和0x13b按鈕或IDK),因此我更改為“啟動” streats select和Select以便開始使用特殊的ButtonOverrides子類,您可以猜到。
# 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" )