Partage
  • Partager sur Facebook
  • Partager sur Twitter

Animation pygame

Sujet résolu
    22 juillet 2021 à 16:37:20

    Bonjour, je cherche a faire un jeu où au début nous avons l'écran d'accueil avec une phrase "appuyez sur espace pour jouer", j'aimerai que cette fameuse phrase change d'opacité comme dans les "jeux connus" (jsp si vous voyez ce que je veux dire, genre que petit a petit la phrase soit de plus en plus transparente et que a la fin elle devienne invisible et que le système recommence), j'ai testé de faire avec "screen blit puis display flip puis time wait puis screen blitpuis display flip puis time wait et ainsi de suite mais problème, ça bug, ducoup est-ce que vous auriez une alternative à ça svp, merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2021 à 16:52:36

      Bonjour,

      Je pense que tu pourrais nous aider à t'aider en répondant à deux questions :

      • Peux-tu partager ton code pour voir comment tu t'y es pris ?
      • Peux-tu nous envoyer le message d'erreur lors de l'exécution ? "Ça bug" ne veut pas dire grand chose. :)
      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2021 à 20:15:09

        Bonjour voilà la partie du code de l'animation,  en revanche il n'y pas de message d'erreur quand je lance, juste ça bug trop, genre ça lag car il y a trop de time wait et de screen.blit, c'est ce qu'on ma dit
                    screen.blit(a1, (0, 0))
                    pygame.display.flip()
                    pygame.time.wait(100)
                    screen.blit(a2, (0, 0))
                    pygame.display.flip()
                    pygame.time.wait(100)
                    screen.blit(a3, (0, 0))
                    pygame.display.flip()
                    pygame.time.wait(100)
                    screen.blit(a4, (0, 0))
                    pygame.display.flip()
                    pygame.time.wait(100)
                    screen.blit(a5, (0, 0))
                    pygame.display.flip()
                    pygame.time.wait(100)
                    screen.blit(a6, (0, 0))
                    pygame.display.flip()
                    pygame.time.wait(100)

        -
        Edité par HugoCam__ 22 juillet 2021 à 20:15:50

        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2021 à 21:37:31

          Salut,

          Tu n'as pas dû faire beaucoup de recherche car en tapant python pygame fade in out screen text dans un moteur :

          Ici un exemple de fade in/out :

          import pygame as pg
          from pygame.locals import *
          
          pg.init()
          clock = pg.time.Clock()
          screen = pg.display.set_mode((640, 480))
          font = pg.font.SysFont("comicsansms", 50)
          blue = pg.Color("red")
          orig_surf = font.render("Press enter to continue...", True, blue)
          txt_surf = orig_surf.copy()
          alpha_surf = pg.Surface(txt_surf.get_size(), pg.SRCALPHA)
          alpha = 0
          fade_in = True
          
          while True:
              for event in pg.event.get():
                  if event.type == pg.QUIT:
                      pg.quit()
                  if event.type == KEYDOWN and event.key == pg.K_SPACE:
                      print("Key Space pressed...")
          
              # Fade In Text
              if alpha >= 0 and fade_in is True:
                  alpha += 2
                  if alpha >= 255:
                      alpha = 255
                      fade_in = False
          
              # Fade Out Text
              if alpha <= 255 and fade_in is False:
                  alpha -= 2
                  if alpha <= 0:
                      alpha = 0
                      fade_in = True
          
              txt_surf = orig_surf.copy()
              alpha_surf.fill((255, 255, 255, alpha))
              txt_surf.blit(alpha_surf, (0, 0), special_flags=pg.BLEND_RGBA_MULT)
              screen.fill((30, 30, 30))
              screen.blit(txt_surf, (30, 60))
              pg.display.flip()
              clock.tick(60)
          


          -
          Edité par Diablo76 22 juillet 2021 à 22:58:41

          • Partager sur Facebook
          • Partager sur Twitter
            22 juillet 2021 à 22:59:53

            sais tu comment redémarrer le fait de baisser la luminosité une fois que alpha = 0, j'imagine que c'est avec une boucle while, mais où la placer ?

            Edit : c'est bon, après un peu de chipotage j'ai réussi a redémarrer l'animation

            -
            Edité par HugoCam__ 22 juillet 2021 à 23:07:47

            • Partager sur Facebook
            • Partager sur Twitter
              23 juillet 2021 à 6:10:39

              Salut,

              j’ai modifié mon script entre deux pour qu’il le fasse en continue

              • Partager sur Facebook
              • Partager sur Twitter

              Animation pygame

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown