Outils pour utilisateurs

Outils du site


ateliers:pygamelab:premierefenetre

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ateliers:pygamelab:premierefenetre [2019/01/04 18:12] izawennateliers:pygamelab:premierefenetre [2019/01/19 11:23] (Version actuelle) izawenn
Ligne 1: Ligne 1:
 ====== Ouverture d'une fenêtre Pygame ====== ====== Ouverture d'une fenêtre Pygame ======
 +// par Izawenn //
 ===== près requis ===== ===== près requis =====
 Avant de commencer, assurez vous d'avoir [[ateliers:pygamelab:installation|installer pygame]] Avant de commencer, assurez vous d'avoir [[ateliers:pygamelab:installation|installer pygame]]
Ligne 108: Ligne 109:
 Bon la nous venons de crée une boucle while qui fait tourner le script "à fond la caisse", c'est à dire autant de fois qu'il le peut. Bon la nous venons de crée une boucle while qui fait tourner le script "à fond la caisse", c'est à dire autant de fois qu'il le peut.
 C'est totalement inutile pour nous, ça gâche des ressources de calcul pour rien. En fait, il nous suffit d'avoir  30 ou 60 boucles par seconde. C'est totalement inutile pour nous, ça gâche des ressources de calcul pour rien. En fait, il nous suffit d'avoir  30 ou 60 boucles par seconde.
-Il va donc nous falloir ralentir un peu notre boucle while. +Il va donc nous falloir ralentir un peu notre boucle while. 
 + 
 +Il existe plusieurs façon de le faire, mais pygame propose une solution toute faite. 
 + 
 +D'abord je vais crée une constante qui va contenir le nombre de boucle par seconde que je souhaite. Soit 30, soit 60 boucles par seconde. 
 +     FRAMERATE = 30 
 + 
 +Dans le main() avant la boucle while, il faut initialiser le framerate: 
 +     horloge_framerate = pygame.time.Clock() 
 + 
 +Vers la fin de la boucle, demande à pygame d'attendre un peu avant la boucle suivante 
 +     horloge_framerate.tick(FRAMERATE) 
 + 
 +Voila ce que cela donne avec le code complet 
 +     import pygame 
 +     
 +     FRAMERATE = 30 
 +     
 +     def main(): 
 +          pygame.init() 
 +      
 +          taille_ecran = (800, 600) 
 +          ecran = pygame.display.set_mode(taille_ecran) 
 +      
 +          jeu_en_cours = True 
 +      
 +          horloge_framerate = pygame.time.Clock() 
 +      
 +          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 
 +      
 +             horloge_framerate.tick(FRAMERATE) 
 +              
 +         pygame.quit() 
 +      
 +     if __name__ == "__main__": 
 +         main() 
 + 
 + 
 +{{:ateliers:pygamelab:ouverture_fenetre.gif?600}} 
 + 
ateliers/pygamelab/premierefenetre.1546621946.txt.gz · Dernière modification : 2019/01/04 18:12 de izawenn