Partage
  • Partager sur Facebook
  • Partager sur Twitter

Souci avec pygame

Sujet résolu
    4 février 2023 à 14:18:29

    Bonjour ! J'aimerais faire un fond d'écran pygame qui est en mouvement.

    Pour cela, j'ai fais ce script :

    import pygame
    import time
    
    pygame.init()
    
    windows = pygame.display.set_mode((1920, 1080), pygame.FULLSCREEN)
    
    running = True
    
    def img():
        pygame.image.load('oof.png')
        time.sleep(1)
        pygame.image.load('oof1.png')
        time.sleep(1)
        pygame.image.load('oof2.png')
        time.sleep(1)
        pygame.image.load('oof.png')
    
    son = pygame.mixer.Sound('song.mp3')
    son.play(loops=-1, maxtime=0, fade_ms=0)
    
    while running:
    
        windows.blit(img, (0,0))
    
        pygame.display.flip()

    Mais le script ne fonctionne pas. Etant donné que python ne peux pas ouvrir les fichiers gif, que faire ??

    -
    Edité par U_Xeno 23 avril 2023 à 18:26:17

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      4 février 2023 à 14:31:31

      https://pillow.readthedocs.io/en/stable/handbook/tutorial.html#image-sequences
      • Partager sur Facebook
      • Partager sur Twitter
        4 février 2023 à 14:36:59

        J'ai importé pillow et j'ai réussit a faire ça :
        import pygame
        from PIL import Image
        
        def img():
            with Image.open("oof.gif") as im:
                im.seek(1)  # skip to the second frame
        
                try:
                    while 1:
                        im.seek(im.tell() + 1)
                        # do something to im
                except EOFError:
                    pass  # end of sequence
        
        
        pygame.init()
        
        windows = pygame.display.set_mode((1920, 1080), pygame.FULLSCREEN)
        
        running = True
        
        son = pygame.mixer.Sound('song.mp3')
        son.play(loops=-1, maxtime=0, fade_ms=0)
        
        while running:
        
            windows.blit(img, (0,0))
        
            pygame.display.flip()
        Mais ça fonctionne toujours pas !!!!
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          4 février 2023 à 15:19:56

          Quelques choses dans ce gout là peut-être ?

          import pygame
          from PIL import Image
           
          images = []
          with Image.open("gif.gif") as im:
              im.seek(1)  # skip to the second frame 
              try:
                  while 1:
                      im.seek(im.tell() + 1)
                      images.append(pygame.image.fromstring(im.tobytes(), im.size, im.mode))
              except EOFError:
                  pass  # end of sequence
           
           
          pygame.init()
           
          windows = pygame.display.set_mode((920,500))
           
          running = True
           
          index = 0
          nb_img = len(images)
          start = pygame.time.get_ticks()
          while running:
              now = pygame.time.get_ticks()
              
              if now - start < 100:
                  continue
              
              if index == nb_img:
                  index = 0        
                  
              windows.blit(images[index], (0, 0)) 
              pygame.display.flip()
              index += 1
              start = pygame.time.get_ticks()
          • Partager sur Facebook
          • Partager sur Twitter
            4 février 2023 à 16:30:52

            Bonjour, merci d'indiquer un titre de sujet en rapport avec votre problématique.

            Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
            Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

            Pour plus d'informations, nous vous invitons à lire les règles générales du forum

            Mauvais titre

            Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

            Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

            De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

            Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

            Merci de modifier votre titre. Pour cela, éditez le premier message de votre sujet.

            (titre originel : Problème avec pygame)

            Liens conseillés

            • Partager sur Facebook
            • Partager sur Twitter
              6 février 2023 à 12:20:30

              U_Xeno a écrit:

              J'ai importé pillow et j'ai réussit a faire ça :

              import pygame
              from PIL import Image
              
              def img():
                  with Image.open("oof.gif") as im:
                      im.seek(1)  # skip to the second frame
              
                      try:
                          while 1:
                              im.seek(im.tell() + 1)
                              # do something to im
                      except EOFError:
                          pass  # end of sequence
              
              
              pygame.init()
              
              windows = pygame.display.set_mode((1920, 1080), pygame.FULLSCREEN)
              
              running = True
              
              son = pygame.mixer.Sound('song.mp3')
              son.play(loops=-1, maxtime=0, fade_ms=0)
              
              while running:
              
                  windows.blit(img, (0,0))
              
                  pygame.display.flip()

              Mais ça fonctionne toujours pas !!!!

              ta fonction img() ne retourne rien (pas de return) et son appel est mauvais (il manque les parenthèses)

              • Partager sur Facebook
              • Partager sur Twitter

              Souci avec 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