Suporta apenas o Python 3, porque os tipos de tipos e algumas outras coisas legais do Python 3.
* 3.4+ Na verdade, de qualquer maneira, 3.10 está fora, há literalmente nenhuma razão para usar as versões antigas-
Como eu precisava usar essa coisa no meu projeto com alguma interface do usuário e ... as coisas, eu a projetei com suporte multithreading (na verdade, essa é a única opção lol), portanto, não precisa se preocupar com isso, basta importar o gamepad necessário, o método listen de fogo e você está pronto para ir.
Aqui está um exemplo:
# 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 ()Mais exemplos podem ser encontrados na pasta Exemplos
Ok, como sei sem abrir o script de módulo inteiro quais botões gamepad eu posso usar?
Como o módulo usa o Typehinting literalmente em todos os lugares que você pode escrever gamepad.buttons e o AutoComplete mostrará todos os botões existentes. Como alternativa, você pode simplesmente abrir a classe Gamepad e ver todo o botão da subclasse Buttons .
Quais gamepads ele suporta? Defender X7 e Xbox 360, com certeza. Bem, eu só possuo o zagueiro x7 gamepad, então testei no modo de entrada X para que não haja recursos de giroscópio e toque, mas você pode contribuir com suas mudanças :)
Como as pessoas podem usar como qualquer tipo de gamepads (especialmente chinesas), pode não funcionar fora da caixa ou alguns botões podem ser trocados e etc., nesse caso, você pode herdar da aula de gamepad padrão ( pygamepad.gamepads.default.Gamepad ) e alterar algumas coisas para o seu caso. Eu tive que fazê -lo para 0x13b meu defensor x7 gamepad porque os botões 0x13a partida e seleção foram trocados por algum motivo (ele usa o módulo ButtonOverrides inputs sob o capô e, por algum motivo
# 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" )