Version 2 : le cercle est un thread !
Changements par rapport à la version précédente
- La classe Cercle dérive de Thread. Les cercles sont donc des Threads.
- Le constructeur de la classe Thread démarre le thread de chaque cercle dès son instanciation
! Sitôt qu'un cercle est créé, il bouge donc en tâche de fond !
- On a déporté le code de déplacement de la méthode run() de l'applet vers la méthode
run() de la classe Cercle.
- La méthode run() de l'applet se contente d'appeler repaint(). L'applet est donc vraiment un "projecteur
de cinéma", ou si vous préférez, elle s'occupe de la partie "animation à
intervalle régulier" de votre super jeu vidéo ! La méthode paint() est appelée
par repaint() (indirectement) et affiche le cercle à sa position courante, qui change perpétuellement
dans la tâche de fond de chaque instance de Cercle.
Que gagne-t-on ?
- Simplification de l'applet,
- Animation des objets constante, seul le nombre d'images par seconde varie selon la machine.
- On devrait pouvoir animer plusieurs cercles sans trop de difficultés...
Un cercle animé, version 2
|
Sources de cette Applet
Problèmes de cette version
- Ca scintille toujours...
- Si on retaille l'Applet, le cercle rebondit toujours dans la même zone...
- On aimerait bien plus de cercles...