ateliers:pygamelab:premierefenetre
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
ateliers:pygamelab:premierefenetre [2019/01/04 17:44] – izawenn | ateliers: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' | Avant de commencer, assurez vous d' | ||
- | ===== Explication du code: ===== | + | ===== Ouvrir une fenêtre |
Dans un premier temps, je dois importer dans python, la bibliothèque pygame. | Dans un premier temps, je dois importer dans python, la bibliothèque pygame. | ||
Ligne 46: | Ligne 47: | ||
| | ||
- | Si je l' | + | Si je l' |
+ | |||
+ | ===== Maintenir la fenêtre ===== | ||
Pour maintenir la fenêtre, il va falloir que je crée une [[ateliers: | Pour maintenir la fenêtre, il va falloir que je crée une [[ateliers: | ||
Ligne 62: | Ligne 65: | ||
Ensuite on crée la boucle while : | Ensuite on crée la boucle while : | ||
- | while(jeu_en_cours): | + | while jeu_en_cours: |
Donc tant que la variable jeu_en_cours sera vrai, la boucle maintiendra la fenêtre ouverte. | Donc tant que la variable jeu_en_cours sera vrai, la boucle maintiendra la fenêtre ouverte. | ||
Ligne 75: | Ligne 78: | ||
jeu_en_cours = False | 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. | 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 : | ||
+ | |||
+ | | ||
+ | |||
+ | def main(): | ||
+ | | ||
+ | | ||
+ | | ||
+ | ecran = pygame.display.set_mode(taille_ecran) | ||
+ | |||
+ | | ||
+ | |||
+ | while jeu_en_cours : | ||
+ | | ||
+ | for event in pygame.event.get(): | ||
+ | if event.type == pygame.QUIT: | ||
+ | | ||
+ | | ||
+ | if event.type == pygame.KEYDOWN: | ||
+ | if event.key == pygame.K_ESCAPE: | ||
+ | jeu_en_cours = False | ||
+ | | ||
+ | | ||
+ | |||
+ | if __name__ == " | ||
+ | | ||
+ | |||
+ | ===== Framerate ===== | ||
+ | Bon la nous venons de crée une boucle while qui fait tourner le script "à fond la caisse", | ||
+ | C'est totalement inutile pour nous, ça gâche des ressources de calcul pour rien. En fait, il nous suffit d' | ||
+ | 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' | ||
+ | | ||
+ | |||
+ | Dans le main() avant la boucle while, il faut initialiser le framerate: | ||
+ | | ||
+ | |||
+ | Vers la fin de la boucle, demande à pygame d' | ||
+ | | ||
+ | |||
+ | Voila ce que cela donne avec le code complet | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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: | ||
+ | | ||
+ | |||
+ | if event.type == pygame.KEYDOWN: | ||
+ | if event.key == pygame.K_ESCAPE: | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | if __name__ == " | ||
+ | | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
ateliers/pygamelab/premierefenetre.1546620288.txt.gz · Dernière modification : 2019/01/04 17:44 de izawenn