[Squeak-fr] Re: Faire bouger des petits lapins...

Dominique Dutoit dominiqued at versateladsl.be
Mer 24 Aou 21:16:10 CEST 2005


> 5) vos idées à vous...

Tu pourrais considérer le morph comme un costume que porte le lapin.

-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: Exemple-Lapin.st
Type: application/octet-stream
Taille: 2903 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20050824/caa7e0db/Exemple-Lapin.obj
-------------- section suivante --------------

Le fichier attaché à ce message donne une idée d'implémentation. Il  
faut en faire une "file in". Avec un workspace, cette commande est  
suffisante:

     FileStream fileIn: 'Exemple-Lapin.st'.

LapinCostume est un morph avec les méthodes nécessaires pour l'animer  
selon un chemin. Tu peux modifier ce chemin en lui donnant une  
collection de points à suivre.

Pour charger les images, il faudra sans doute initialiser la classe  
LapinCostume, mais cela ne doit se faire qu'une seule fois dans un  
workspace (ex.: LapinCostume initialize). Les images sont 'lapin- 
blanc.png' et 'lapin-brun.png'.

Pour créer une instance d'un costume brun:

     LapinCostume brun.

Pour porter un costume et l'animer:

     lapin := Lapin new porteCostume: (LapinCostume brun).
     lapin costume montre; bouge.

Pour changer de costume:

     lapin porteCostume: (LapinCostume blanc).

Pour lui faire suivre un autre chemin:

     lapin costume
         chemin: ({10 at 10. 30 at 30. 30 at 40. 40 at 40.} as: OrderedCollection);
         montre;
         bouge.

Pour enlever le costume:

     lapin enleveCostumeActuel.

Le costume peut également parler au modèle en retrouvant celui qui le  
porte:

     lapin costume model = lapin

De cette manière, la séparation entre le modèle et sa représentation  
graphique reste suffisamment claire. Le costume est un peu comme une  
marionnette que le modèle ou un contrôleur peut manipuler.


Plus d'informations sur la liste de diffusion Squeak-fr