Le python landais

Chapitre 10 : TP2. des images animées.



2. Des images animées.

..... a. Les sprites.
..... b. Alors on danse : faire défiler un gif.
..... c. L'opérateur modulo.
..... d. Applications.
......... Quand la droite devient un cercle, et le plan un tore !
......... Faire bouger et défiler l'image en même temps.





a) Les sprites.

Un sprite, ou lutin, est dans le jeu vidéo un élément graphique qui peut se déplacer sur l'écran. En principe, un sprite est en partie transparent (la partie transparente de l'image s'appelle le canal alpha), et il peut être animé (en étant formé de plusieurs images qui s'affichent les uns après les autres).
Dans les jeux à 2 dimensions, le fond de l'écran constitue souvent le décor, et les sprites sont les personnages (et les objets), qui se déplacent en superposant au fond d'écran.

Le système des sprites a eu une importance telle dans la programmation de jeux vidéo qu'il faisait l'objet, autrefois, de circuits dédiés sur les consoles de jeux, ainsi que sur certains ordinateurs.

Un sprite que vous connaissez déjà tous : le pointeur de la souris !



b) Alors on danse : faire défiler un gif.


Exercice 1 :
Créer une fenêtre tkinter avec un canevas et un bouton "Go !".
A chaque fois que l'utilisateur appuiera sur "Go !", le programme fera défiler, une à une, toutes les images du gif affiché ci-dessus.

Quelques indications :




c) L'opérateur modulo.

Nous disposons déjà en python des opérateurs d'addition (+), de multiplication (*) ... ajoutons maintenant l'opérateur modulo.
Il existe une infinité de nombres entiers naturels : 0, 1, 2, 3 ... . En mathématiques et en informatique, il sera souvent utile de travailler dans des structures ne contenant, par exemple, que 10 entiers : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Après, on considérera que :    10, c'est 0;    11, c'est 1;    12, c'est 2 ...

Absurde, n'est-ce pas ? Et bien pas du tout; et pire encore : vous comptez déjà modulo 24 depuis la petite enfance ! En effet, pour les heures, nous ne numérotons les heures que de 0 à 23, et revenons à 0 toutes les 24 heures.
Nous comptons donc modulo 24 : au bout de 24h, il est 0h; au bout de 26h, il est 2h; ... ; au bout de 48h, il est 0h...

En python, l'opérateur modulo sera noté : %.

Exemples :
0 % 2 = 0       1 % 2 = 1       2 % 2 = 2
3 % 2 = ?       4 % 2 = ?       5 % 2 = ?       6 % 2 = ?

Remarque :
pour ceux qui ont vu la division euclidienne au collège, a%b n'est autre que le reste de la division euclidienne de a par b.



Exercice 2 :
1.Donner le résultat des opérations suivantes :
2. Qu'affiche le programme suivant lorsqu'on l'exécute :
for i in range(65) :
    print(i%13)

3. Ecrire un programme qui affichera les 18 entiers de 0 à 17, 2 fois de suite.



d) Applications en informatique.

Elles sont très nombreuses et nous contenterons ici de citer 2 exemples :

Application 1 : quand la droite devient un cercle, et le plan un tore !
on souhaite faire défiler un objet animé entre un nombre fini de positions, puis, lorsqu'il sort de la fenêtre, le faire revenir à la position de départ, et lui faire reprendre son défilé, créant ainsi une animation infinie.


Exercice 3 :
Reprendre l'exercice 10 du chapitre 8, et faire en sorte que : lorsque le carré sort de la fenêtre, il ré-apparaisse tout en haut de la fenêtre pour se remettre à descendre ... et ainsi de suite indéfiniment :


Questions :


Application 2 : Faire bouger et défiler l'image en même temps.
Attention : cette seconde application permettra de rendre certains projets nettement plus élégants et réalistes, mais aussi : plus techniques ! On ne se lancera là-dedans que si l'on se sent très à l'aise, et qu'on est en avance sur le projet.

Pour créer des dépalcements plus réalistes de nos personnages, nous souhaiterions changer d'image à chaque déplacement du personnage :

déplacement basique d'une image :



déplacement avec changement d'image :




Exercice 4 :
Nous souhaitons dans cet exercice obtenir une fenêtre où nous déplacerons notre personnage "Matt" à l'aide des flèches droite et gauche du clavier.
En outre, lorsque Matt sortira de la fenêtre par l'un des côtés, il poursuivra son chemin de l'autre côté :



On pourra pour cela :
Les images : télécharger et décompresser ce dossier.