Outils pour utilisateurs

Outils du site


ateliers:pygamelab:premierefenetre

Ceci est une ancienne révision du document !


Ouverture d'une fenêtre Pygame

près requis

Avant de commencer, assurez vous d'avoir installer pygame

Explication du code:

Dans un premier temps, je dois importer dans python, la bibliothèque pygame.

   import pygame

Ensuite, complète le reste du code dans le main()

   def main():

A l'intérieur du main(), je vais commencé par initialiser pygame.

  pygame.init()

Ensuite, je défini la longueur et la largeur de la fenêtre dans une variable que je nomme taille_ecran Et j'affiche un écran de la longueur et de la largeur que je viens de définir précédemment.

  taille_ecran = (800, 600)
  ecran = pygame.display.set_mode(taille_ecran)

Maintenant, je peux quitter pygame.

  pygame.quit()

Et lancer le main()

   if __name__ == "__main__":
       main() 

Voici le code complet de cette première partie:

   import pygame
   
   def main():
       pygame.init()
       
       taille_ecran = (800, 600)
       ecran = pygame.display.set_mode(taille_ecran)
       
       pygame.quit()
       
   if __name__ == "__main__":
       main() 
       

Si je l'exécute j'arrive à ouvrir une fenêtre. Mais seulement pendant environs un dixième de seconde avant la fin du script.

Pour maintenir la fenêtre, il va falloir que je crée une boucle. Comme je ne sais exactement à quel moment je jeux va s'arrêter, je vais choisir une boucle “while” Seulement voila, lorsque l'on utilise une boucle “while”, il doit y avoir une condition pour l'arrêter. Dans le cas présent, nous allons dire que lorsque je clique sur la croix de la fenêtre(et oui même ça, ça ne ce fait pas tout seul). cela arrête la boucle. Ce qui amène à la fermeture de la fenêtre comme nous l'avons vu tout à l'heure. Pour cela nous allons crée une variable qui prendra la valeur “True” par défaut, et qui prendra la valeur “False” lorsqu'une condition d'arrêt est rempli.

Pour des raisons de facilité nous allons temporairement programmer la touche “Echap” pour arrêter la boucle. Parfois l'utilisation d'une touche est plus simple lorsque l'on est amener à faire des tests souvent.

C'est parti :

Je déclare la variable qui me permet qui me permet de maintenir la boucle.

   jeu_en_cours = True

Ensuite on crée la boucle while :

   while jeu_en_cours:

Donc tant que la variable jeu_en_cours sera vrai, la boucle maintiendra la fenêtre ouverte.

Maintenant il vaut définir les conditions d'arrêt

   for event in pygame.event.get(): 
          if event.type == pygame.QUIT:
              jeu_en_cours = False

Donc si l'on clique sur la petite croix de la fenêtre, la variable jeu_en_cours devient fausse, et la boucle s'arrête.

   if event.type == pygame.KEYDOWN:
              if event.key == pygame.K_ESCAPE:
                  jeu_en_cours = False

Si l'on appuis sur la touche échap, la variable jeu_en_cours devient également fausse, et la fenêtre se ferme de la même façon.

Avec le code complet, voila ce que ça donne :

   import pygame
   
   def main():
       pygame.init()
  
       taille_ecran = (800, 600)
       ecran = pygame.display.set_mode(taille_ecran)
   
       jeu_en_cours = True
   
       while jeu_en_cours :
    
           for event in pygame.event.get():
                if event.type == pygame.QUIT:
                     jeu_en_cours = False
      
                if event.type == pygame.KEYDOWN:
                     if event.key == pygame.K_ESCAPE:
                          jeu_en_cours = False
      
       pygame.quit()
   
  if __name__ == "__main__":
       main() 
  
ateliers/pygamelab/premierefenetre.1546620633.txt.gz · Dernière modification : 2019/01/04 17:50 de izawenn