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édenteDernière révisionLes deux révisions suivantes | ||
ateliers:pygamelab:premierefenetre [2019/01/04 07:46] – [Explication du code:] izawenn | ateliers:pygamelab:premierefenetre [2019/01/19 11:17] – izawenn | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
===== 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 46: | ||
| | ||
- | 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: | ||
Comme je ne sais exactement à quel moment je jeux va s' | Comme je ne sais exactement à quel moment je jeux va s' | ||
Seulement voila, lorsque l'on utilise une boucle " | 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, cela arrête la boucle. Ce qui amène à la fermeture de la fenêtre comme nous l' | + | 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). |
Pour cela nous allons crée une variable qui prendra la valeur " | Pour cela nous allons crée une variable qui prendra la valeur " | ||
Ligne 58: | Ligne 60: | ||
C'est parti : | C'est parti : | ||
- | Je déclare la variable qui me permet | + | Je déclare la variable qui me permet |
+ | | ||
+ | |||
+ | 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__ == " | ||
+ | | ||
+ | |||
+ | |||
+ | {{: | ||
+ |
ateliers/pygamelab/premierefenetre.txt · Dernière modification : 2019/01/19 11:23 de izawenn