Je crée en ce moment un jeu de plateformes en 2D sur Pygame et je me heurte à un problème avec le joystick. J'utilise la méthode suivante pour gérer mes déplacements :
for event in pygame.event.get():
if event.type == JOYAXISMOTION:
if event.axis == 0 and event.value > 0:
perso.move(perso.vitesse, 0)
Malheureusement si je laisse le joystick enfoncé dans une direction, le personnage ne se déplace qu'une fois puis arrête de bouger, l'input n'est pas réalisé en continu. Voilà donc mon problème, j'aimerais que mon personnage se déplace en continu et je ne sais pas comment faire. Pour les contrôles au clavier j'utilise cette méthode qui marche très bien :
key = pygame.key.get_pressed()
if key[pygame.K_a or pygame.K_A or pygame.K_LEFT]:
perso.move(-perso.vitesse, 0)
Je n'ai pas trouvé d'équivalent avec le joystick. Merci d'avance, et bonne soirée à vous !
"The best thing about now, is that there's another one tomorrow."
Ça fait un bail que je n'ai pas utilisé pygame, mais voici ce que j'ai mis dans mon wiki personnel:
#Pour continuer les actions quand on maintien une touche, on utilise la méthode
#set_repeat() du module key.
pygame.key.set_repeat(délai, intervalle)
#Le délai correspond au temps entre l'action quand on appuie sur la touche et la
#première répétition.
#L'intervalle correspond au temps entre chaque répétition
#ATTENTION: Cette méthode doit être placé avant la boucle. En fait ce n'est
#qu'un paramètre, donc on peut même le mettre au début
En espérant que ça te soit utile. Je ne pourrai pas t'aider plus
Merci pour ta réponse mais je viens de trouver mon bonheur sur un site anglais. Si ça peut aider des gens qui vont lire ce forums, j'ai utilisé cette méthode :
axis = pygame.joystick.Joystick(0).get_axis(0)
if axis > 0.5:
perso.move(perso.vit, 0)
if axis < -0.5:
perso.move(-perso.vit, 0)
Cela permet de vérifier la position du joystick sur l'axe des abscisses. Ainsi à chaque frame, cette condition est vérifiée contrairement au event.get() qui attend qu'on relâche le bouton.
Bonne soirée !
"The best thing about now, is that there's another one tomorrow."
Le perso avance tant que le joystick n'est pas revenu en position neutre. Ça fait intervenir une variable.
Python c'est bon, mangez-en.
[Pygame] Problème avec le stick
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.