Flappy ====== Nous poursuivons notre étude de Python et de Pygame avec un nouveau jeu, *Flappy*, qui utilise des images, plutôt que des primitives géométriques. **Notez** déjà que dans cette partie du tutoriel, toutes les images utilisées doivent être sauvegardées dans un sous-répertoire ``images``, du répertoire où votre code se trouve: vous pouvez, d'ores et déjà, créer ce sous-répertoire. Notre héros, Flappy, est un oiseau: .. figure:: images/bird_wing_mid.png :alt: Flappy Flappy. Vous pouvez le télécharger, directement dans votre répertoire ``images``, en faisant "clic-droit, enregistrer sous..." sur cette image, et en selectionnant votre répertoire ``images`` comme répertoire cible pour la souvegarde. Voici le code Python qui place Flappy dans un beau ciel bleu: .. literalinclude:: ../flappy/flappy_1.py Les seules nouvelles commandes, dans ce programme, sont celles qui permettent de charger l'image dans Pygame:: image = pygame.image.load('images/bird_wing_mid.png').convert_alpha(fenetre) image = pygame.transform.scale(image, (FLAPPY_LARGEUR, FLAPPY_HAUTEUR)) ``pygame.image.load`` charge l'image dont le nom de fichier est passé en argument (dans notre exemple, le fichier ``bird_wing_mid.png`` qui se trouve dans le sous-répertoire ``images`` du répertoire d'où l'on exécute le programme). Le résultat de cette commande est une ``Surface`` Pygame, c'est-à-dire un élément affichable à l'écran. On applique ensuite la commande ``convert_alpha`` à cette surface, pour la rendre compatible avec les caractéristiques de l'écran (sauvées dans la variable ``fenetre``). La commande suivante, ``pygame.transform.scale`` met l'image aux dimensions voulues. Vous devriez être familier avec le reste du programme. La seule chose à se rappeler est que pour afficher Flappy à l'écran, il faut d'abord "l'estampiller" sur la surface de l'écran avec ``fenetre.blit(image, (50, 50))`` (le coin supérieur gauche de l'image de Flappy est positionné aux coordonnées (50, 50)), et ensuite réafficher l'écran avec ``pygame.display.flip``. Notez que même si notre programme se contente d'afficher Flappy, sans rien faire d'autre, l'écran est quand même rafraîchi 10 fois par seconde. .. include:: txt/week4.rst .. include:: txt/week5.rst .. include:: txt/week6.rst