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/03 06: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: | ||
+ | Comme je ne sais exactement à quel moment je jeux va s' | ||
+ | Seulement voila, lorsque l'on utilise une boucle " | ||
+ | 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' | ||
+ | Pour cela nous allons crée une variable qui prendra la valeur " | ||
+ | |||
+ | Pour des raisons de facilité nous allons temporairement programmer la touche " | ||
+ | |||
+ | C'est parti : | ||
+ | |||
+ | Je déclare la variable qui me permet qui me permet de maintenir la boucle. | ||
+ | | ||
+ | |||
+ | 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' | ||
+ | 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' | ||
+ | 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 : | ||
+ | |||
+ | | ||
+ | |||
+ | 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__ == " | ||
+ | | ||
+ | |||
+ | |||
+ | {{: | ||
- | Pour maintenir la fenêtre, il va falloir que je crée une boucle. |
ateliers/pygamelab/premierefenetre.txt · Dernière modification : 2019/01/19 11:23 de izawenn