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:48] – 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(et oui même ç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' | + | 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 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