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" )