9.2 Une animation : le bonhomme qui grandit

pict

Tout d’abord, nous allons définir une procédure bon qui trace le bonhomme ci-contre à la taille de notre choix.

 pour bon :c
 tg 154 av 44*:c re 44*:c
 tg 52 av 44*:c re 44*:c
 tg 154 av 40*:c
 tg 154 av 44*:c re :c*44
 tg 52 av 44*:c re :c*44
 tg 154 av 10*:c
 tg 90 repete 180[av :c/2 td 2] td 90
 fin

Nous allons à présent créer une animation donnant l’illusion que le bonhomme grandit petit à petit. Pour cela, nous allons tracer bon 0.1 puis bon 0.2 bon 0.3 ... jusqu’à bon 5. Entre chaque tracé, on effacera l’écran. On obtient les deux procédures suivantes :

 pour bon :c
 tg 154 av 44*:c re 44*:c
 tg 52 av 44*:c re 44*:c
 tg 154 av 40*:c
 tg 154 av 44*:c re :c*44
 tg 52 av 44*:c re :c*44
 tg 154 av 10*:c
 tg 90 repete 180[av :c/2 td 2] td 90
 si :c=5[stop]
 ve ct bon :c+0.1
 fin
 
 pour demarrer
 ve ct
 bon 0
 fin

Enfin, pour fluidifier le tout, on va se servir du mode animation et de la primitive rafraichis.

                                                                                                  
                                                                                                  
 pour bon :c
 tg 154 av 44*:c re 44*:c
 tg 52 av 44*:c re 44*:c
 tg 154 av 40*:c
 tg 154 av 44*:c re :c*44
 tg 52 av 44*:c re :c*44
 tg 154 av 10*:c
 tg 90 repete 180[av :c/2 td 2] td 90
 rafraichis
 si :c=5[stop]
 ve ct bon :c+0.1
 fin
 
 pour demarrer
 ct animation
 bon 0
 stopanimation
 fin
 

Remarque : Ici, la procédure bon est récursive, on aurait plus simplement utiliser la primitive repetepour afin de faire varier :c de 0,1 à 5. Voici le programme obtenu alors :

 pour bon :c
 ve ct tg 154 av 44*:c re 44*:c
 tg 52 av 44*:c re 44*:c
 tg 154 av 40*:c
 tg 154 av 44*:c re :c*44
 tg 52 av 44*:c re :c*44
 tg 154 av 10*:c
 tg 90 repete 180[av :c/2 td 2] td 90
 rafraichis
 fin
 
 pour demarrer
 ct animation
 repetepour [c 0 5 0.1][bon :c]
 stopanimation
 fin