Lors du lancement du logiciel Python, seules les fonctions principales sont chargées en mémoire. Les autres sont rangées dans des fichiers appelés librairies. Si on souhaite utiliser une fonction définie dans une librairie, il faut la charger en mémoire.
Par exemple, si vous souhaitez faire des mathématiques (si, si!), vous pouvez avoir besoin de la racine carrée. Vous débutez votre programme parCertaines bibliothèques (library en anglais) sont éditées par les développeurs de Python (c'est le cas de math, random…) et installées automatiquement avec le logiciel. Vous pouvez en définir de nouvelles. Vous pouvez en utiliser d'autres développées par des gens ne travaillant pas pour Python. C'est le cas de pygame. Vous devez vous assurer que la licence de la bibliothèque est conforme à l'utilisation que vous en ferez. Pygame est une bibliothèque libre de droit donc éprouvez de la reconnaissance pour ses développeurs qui vous font partager le fruit de leur travail gratuitement.
Pour faire simple, la première ligne indique où se trouve le fichier de l'image et la transforme en une variable ici appelée balle utilisable dans le programme. Cette affectation n'est à faire qu'une fois dans le programme!
La deuxième ligne précise à quel endroit le coin en haut à gauche de balle sera placé dans la fenêtre.
a fenêtre est vue comme un tableau de pixels (ici de 640 de large sur 480 de haut). La case en haut à gauche est repérée par (0,0) et celle en bas à droite par (640,480). Ici, on place image en (320,240) soit au milieu!
La troisième ligne, sert à actualiser l'affichage avec nos modifications.
On peut faire afficher une deuxième image de fond. Il suffit de définir une deuxième variable fond… la placer au bon endroit puis faire un seul flip()
Pour faire "bouger" une image, il suffit de la faire s'afficher successivement à différents endroits.
Construire un programme qui déplace une image du bord gauche de l'écran vers le bord droit. Vous aurez donc besoin d'une boucle et d'une variable pour noter l'abscisse x de l'image.
Si vous réussissez, vous remarquerez que l'image laisse "une trainée" derrière elle car les images affichées précédemment sont restées. On ne peut pas les "effacer", il faut "écraser" votre précédente image avec le fond avant d'afficher l'image à sa nouvelle position.
On sait maintenant insérer et faire bouger une image dans la fenêtre pygame. On souhaite maintenant que l'utilisateur du programme puisse interagir avec ce qu'il se passe dans la fenêtre avec réactivité, sans repasser par le shell. Par exemple, on aimerait pouvoir quitter proprement pygame en cliquant sur la croix de fermeture au lieu de simplement attendre la fin de l'exécution du script (ou de devoir l'écrire dans le shell car on a oublié de le notifier dans le script!).
Découvrons comment piloter le programme par des évènements (clic de souris, appui sur une touche comme flèche haut…). Chaque évènement qui se produit est envoyé sur une file. La méthode pygame.event.get() permet de les affecter les uns après les autres à une variable (que nous appelerons evenement).afin de pouvoir les traiter. Nous en analyserons ensuite le type (grâce à evenement.type) afin de déterminer ce que nous souhaitons faire.
On veut savoir si une touche du clavier a été enfoncée ou relâchée. Il suffit de tester les types KEYDOWN ou KEYUP (rappel: key signifie touche ; et up/down signifient haut/bas). Une fois qu'on sait qu'une touche a été enfoncée (ou relâchée), il peut être utile de savoir laquelle. Pour cela on examine la valeur de evenement.key
Exemple :