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:11] 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 107: Ligne 108:
 ===== Framerate ===== ===== Framerate =====
 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 en une 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.1546621890.txt.gz · Dernière modification : 2019/01/04 18:11 de izawenn