Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pygame] Créer un petit cadre dans une fenêtre

    27 décembre 2021 à 23:02:36

    Bonjour ! Je suis en train de créer un Mastermind en python avec le module Pygame.

    Au cours d'une partie, je souhaiterais pouvoir afficher les règles (en cliquant sur un "bouton" règle, qui est présent tout en long de la partie) et tout en ne perturbant pas le cours de la partie, vu que Pygame affiche une surface par dessus une autre, ce serait embêtant pour reprendre le jeu là où on en était.

    Merci d'avance pour vos réponses et bonne journée/soirée !

    • Partager sur Facebook
    • Partager sur Twitter
      28 décembre 2021 à 6:18:19

      Salut,

      En créant une surface qui possède sa propre boucle d'évènements :

      def regle_jeu():
          font_title = pygame.font.SysFont("Arial", 40)
          font_enter = pygame.font.SysFont("Arial", 20)
          title_text = font_title.render("Règle du jeu", True, (0, 0, 0))
          enter_text = font_enter.render("Press space to continue ...", True, (0, 255, 0))
          width_text_title = title_text.get_rect().width
          width_enter_title = enter_text.get_rect().width
          surface = pygame.Surface((300, 200))
          surface.fill((55, 155, 255))
          while True:
              screen.blit(surface, (150, 100))
              surface.blit(title_text, (150 - (width_text_title / 2), 0))
              surface.blit(enter_text, (150 - (width_enter_title / 2), 170))
              pygame.display.flip()
              for event in pygame.event.get():
                  if event.type == pygame.KEYDOWN:
                      if event.key == pygame.K_SPACE:
                          return
      
      
      import pygame
      
      screen = pygame.display.set_mode((600, 400))
      pygame.display.set_caption("Game")
      pygame.font.init()
      running = True
      while running:
          screen.fill((0, 0, 255))
          pygame.display.flip()
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
              elif event.type == pygame.MOUSEBUTTONDOWN:
                  if event.button == 1:
                      regle_jeu()
      


      Après, rien ne t'empèche de créer une jolie image en png avec la règle du jeu et de l'afficher en utilisant ce principe.

      -
      Edité par Diablo76 28 décembre 2021 à 6:51:50

      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2021 à 11:59:37

        D'accord merci ! Je vais essayer ça
        • Partager sur Facebook
        • Partager sur Twitter

        [Pygame] Créer un petit cadre dans une fenêtre

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