Cela ne fonctionne pas non plus avec LapinCostume :(
Y a-t-il en smalltalk un équivalent à la fonction C sleep() ? Je n'en ai pas trouvé en cherchant sleep, pause etc. Cela permettrait d'attendre que la méthode startAnimation soit finie avant de continuer la boucle.
À mon avis, il faudrait donner un peu plus de responsabilités aux lapins et éviter d'avoir un contrôleur trop omniscient.
Dans le code que j'ai posté hier, quand le costume est arrivé au bout du chemin (voir le test dans la méthode #step), il appelle la méthode #arrete. Rien n'empêche alors de dire au modèle que l'animation est terminée et d'en avertir le contrôleur. Le contrôleur peut alors choisir au hasard un autre lapin et lui demander de s'animer, et ainsi de suite.
Contrôleur choisit un lapin au hasard -> Dire au lapin de s'animer -> Animation terminée -> Prévenir contrôleur -> Contrôleur choisit un autre lapin -> etc.
C'est comme une boucle sauf que les objets communiquent entre eux afin de prendre des décisions. Du coup le code est moins procédural.
Bonjour,
Y a-t-il en smalltalk un équivalent à la fonction C sleep() ? Je n'en ai pas trouvé en cherchant sleep, pause etc.
Oui, il y est possible d'utiliser la class Delay. Par exemple: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= (Delay forSeconds: 5) wait -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
permet de faire attendre le thread "courant".
Ouvre le transcript, et execute le code suivant dans un workspace: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [1 to: 4 do: [:i| (Delay forSeconds: 1) wait. Transcript show: 'Blah: ', i printString; cr]] fork -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
A++, Alexandre
squeak-fr@lists.squeakfoundation.org