Partage
  • Partager sur Facebook
  • Partager sur Twitter

Événement pygame

Python+pygame

    29 février 2012 à 10:40:49

    Bonjour a tous,
    Alors voilà je me suis remis a travailler sur l'animation sujet sur lequel
    j'ai déjà poster un message et pendant que j'y suis je remercie tous ceux
    qui ont participé mais bon ma question n'est pas la, je voudrais savoir
    si il y a un petit bout de code disant par exemple:
    tant que évent.key== K_RIGHT: le code s'execute
    Voilà ma question
    J'espère que vous pourrez m'aider et vous remercie par avance^^
    • Partager sur Facebook
    • Partager sur Twitter
      29 février 2012 à 11:01:32

      Oui c'est possible . Tu as une doc en anglais sur pygame.org , plein d'exemple aussi..... Tu peux aussi consulter mon post sur la POO
      • Partager sur Facebook
      • Partager sur Twitter
        29 février 2012 à 11:05:11

        Ok. Mais tu ne connaitrais pas ce fameux bout de code? Ou bien alors un lien vers la doc
        • Partager sur Facebook
        • Partager sur Twitter
          29 février 2012 à 11:48:37

          plusieurs solutions ... tiens, une non-bloquante(cadeau):

          faire_action = faux
          boucle evenementielle:
              si enfoncement de la touche K_RIGHT alors faire_action = vrai
              si relachement de la touche K_RIGHT alors faire_action = faux
              si faire_action vaut vrai alors action()
          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

            29 février 2012 à 11:55:19

            Donc avec ce code tant qu'on a le doit sur la touche action = vrai?
            • Partager sur Facebook
            • Partager sur Twitter
              29 février 2012 à 12:02:49

              Je pense que ce serait quelque chose de ce type :


              pygame.key.set_repeat(100, 100) #si on reste appuyé l'evenement continue
              action = True
              while action:
                  for event in pygame.event.get():
                      if (event.type == KEYDOWN and event.key == K_RIGHT):
                          ICI TU PLACES TON BOUT DE CODE
              
                      if (event.type == QUIT):
                          action = False
              
              • Partager sur Facebook
              • Partager sur Twitter
                29 février 2012 à 12:07:23

                Ok merci je fonce essayer ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  29 février 2012 à 12:13:03

                  pygame.key.set_repeat() ... pourquoi pas, c'est une des soluces, mais ...
                  pygame.key.set_repeat() limite à 1ms, donc soit ça peut laguer comme ça peut saturer la file d'événements ...

                  en fait tout dépend de ce que doit faire le code.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Python c'est bon, mangez-en. 

                    29 février 2012 à 12:18:17

                    Sa fonctionne c'est super merci mais je voudrais
                    maintenant je voudrais pouvoir dire si il n'y a pas
                    de touche pressé l'image par default du perso
                    s'affiche est-ce possible
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 février 2012 à 12:21:48

                      Oui les paramètres que j'ai mis dans :
                      pygame.key.set_repeat(A, B)
                      sont totalement arbitraires.

                      Le A correspond au temps avant de répéter pour la première fois l'event (en millisecondes)
                      Le B correspond au temps entre chaque répétition (en millisecondes aussi.)

                      pygame.key.set_repeat(100, 100) #si on reste appuyé l'evenement continue
                      action = True
                      while action:
                          for event in pygame.event.get():
                              if (event.type == KEYDOWN and event.key == K_RIGHT):
                                  ICI TU PLACES TON BOUT DE CODE
                      
                              if (event.type == QUIT):
                                  action = False
                      
                              else: # aucune touche enfoncée
                                  CODE IMAGE PAR DEFAUT
                      


                      Edit : à la réflexion je ne crois pas que ça marche.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 février 2012 à 12:30:31

                        Ce code marche mais il me sembler qu'il y avais
                        Un code du genre si aucune touche n'est pressée
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 février 2012 à 14:09:55

                          Citation : AnonymuS

                          Ce code marche mais il me sembler qu'il y avais
                          Un code du genre si aucune touche n'est pressée

                          Avec un peu de recherche personnelle tu vas trouver
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Événement pygame

                          × 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.
                          • Editeur
                          • Markdown