C'est vrai que ce n'est pas évident, mais ici, ton meilleur ami, c'est le morph.
Pour l'image du fond, tu crées un nouveau projet Morphic, tu l'ouvres et tu y déposes ton fichier. Cela devrait faire l'affaire.
Pour le lapin, le mieux est le format PNG, comme cela, il peut avoir un fond transparent et se superposer à d'autres images sans les recouvrir totalement. Un petit coup de Photoshop et en voilà un.
Ensuite, tu le charges comme un morph en mémoire.
lapin := (PNGReadWriter formFromFileNamed: 'lapin.png') asMorph.
Tu lui donnes des coordonnées, par exemple:
lapin position: 50@40.
Et tu l'affiches.
lapin openInWorld.
Quand tu décides que tu l'as trop vu, tu le vires et il disparaîtra tout seul de l'écran.
lapin abandon.
Voilà pour le principe.
Tu peux aussi le copier pour créer plusieurs instances à partir du même morph.
lapin2 := lapin copy.
Pour l'animer, tu changes ces coordonnées, il va se positionner tout seul au bon endroit. Si tu places un délai entre chaque positionnement, cela peut faire l'illusion.
lapin position 10@10. lapin position 100@100.
Si tu veux le rendre un peu plus intelligent alors là il va falloir coder un morph avec un sous-morph. Je dois partir là maintenant, mais je peux y regarder plus tard.
Bon courage.
lapin2 := lapin copy.
J'ai revérifié cela, car j'avais peur que Squeak ne duplique tout, même l'image, ce qui risquait de consommer une belle quantité de mémoire.
lapin2 image = lapin image "= true"
En faisant juste ce test, on voit qu'il n'a conservé qu'une seule référence à l'image malgré la copie de l'instance "lapin". D'où une consommation moindre de mémoire.
Pour animer les lapins par eux-mêmes, il y a la méthode #step, et les méthodes associées, de la classe Morph. Ces méthodes permettent d'exécuter du code à intervalle régulier. Il y a un tutorial sur ce sujet ici:
http://www.squeak.org/tutorials/morphic-tutorial-1.html
Je trouve que le fait que les classes et méthodes de Squeak ne soient pas systématiquement documentés comme par exemple le sont celles du framework Cocoa d'apple en Objective-C est un sérieux handicap pour les newbies du smalltalk comme moi. Je n'ai par exemple choisi une OrderedCollection pour ranger mes lapins qu'après moult essais foireux, alors que les NSMutableArray sont clairement indiqués pas Apple comme étant les structures dédiées au stockage d'objets.
NSMutableArray est un beau piège, car cette classe est en fait une collection et non un array. Pour un vrai array, on doit utiliser la primitive C.
La documentation n'est pas géniale, mais en même temps comme tout est toujours disponible, il y a des centaines d'exemples qui n'attendent qu'à être explorés. J'utilise souvent les menus du navigateur pour retrouver les méthodes qui implémentent ou qui envoient tel ou tel message, que je trouve assez efficace, ou l'usage des variables dans le code.
Je suis d'accord que Morphic est vraiment très peu documenté alors que c'est sous doute la partie de Squeak qui le distingue de la masse.
Bonjour,
C'est un beau projet que ce "lapin".
Pourriez-vous me renseigner et me dire si Squeak est un logiciel libre . Quelle est la licence ? merci Cordialement Michèle Drechsler ----- Original Message ----- From: "Dominique Dutoit" dominiqued@versateladsl.be To: squeak-fr@lists.squeakfoundation.org Sent: Tuesday, August 23, 2005 8:18 AM Subject: [Squeak-fr] Re: Faire bouger des petits lapins...
lapin2 := lapin copy.
J'ai revérifié cela, car j'avais peur que Squeak ne duplique tout, même l'image, ce qui risquait de consommer une belle quantité de mémoire.
lapin2 image = lapin image "= true"
En faisant juste ce test, on voit qu'il n'a conservé qu'une seule référence à l'image malgré la copie de l'instance "lapin". D'où une consommation moindre de mémoire.
Pour animer les lapins par eux-mêmes, il y a la méthode #step, et les méthodes associées, de la classe Morph. Ces méthodes permettent d'exécuter du code à intervalle régulier. Il y a un tutorial sur ce sujet ici:
http://www.squeak.org/tutorials/morphic-tutorial-1.html
Je trouve que le fait que les classes et méthodes de Squeak ne soient pas systématiquement documentés comme par exemple le sont celles du framework Cocoa d'apple en Objective-C est un sérieux handicap pour les newbies du smalltalk comme moi. Je n'ai par exemple choisi une OrderedCollection pour ranger mes lapins qu'après moult essais foireux, alors que les NSMutableArray sont clairement indiqués pas Apple comme étant les structures dédiées au stockage d'objets.
NSMutableArray est un beau piège, car cette classe est en fait une collection et non un array. Pour un vrai array, on doit utiliser la primitive C.
La documentation n'est pas géniale, mais en même temps comme tout est toujours disponible, il y a des centaines d'exemples qui n'attendent qu'à être explorés. J'utilise souvent les menus du navigateur pour retrouver les méthodes qui implémentent ou qui envoient tel ou tel message, que je trouve assez efficace, ou l'usage des variables dans le code.
Je suis d'accord que Morphic est vraiment très peu documenté alors que c'est sous doute la partie de Squeak qui le distingue de la masse._______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Squeak est un projet open-source on peut - lire ***tout*** le code - modifier ***tout*** le code - developper des logiciels professionnels et etre paye sans rien devoir - distribuer des applications developpees en Squeak
La license est la license Squeak-L http://www.squeak.org/about/index.html
Les fonts que utilisent squeak ne sont plus sous license apple a partir de la version 3.7 ou 3.8
Certains package sont MIT et Squeak-L
Voici une liste de qq projets qui utilisent Squeak http://www.opencroquet.org/ http://tweak.impara.de/ http://smallwiki.unibe.ch/ http://www.seaside.st/
tous MIT
Stef
On 23 août 05, at 08:43, michele.drechsler wrote:
Bonjour,
C'est un beau projet que ce "lapin".
Pourriez-vous me renseigner et me dire si Squeak est un logiciel libre . Quelle est la licence ? merci Cordialement Michèle Drechsler ----- Original Message ----- From: "Dominique Dutoit" dominiqued@versateladsl.be To: squeak-fr@lists.squeakfoundation.org Sent: Tuesday, August 23, 2005 8:18 AM Subject: [Squeak-fr] Re: Faire bouger des petits lapins...
lapin2 := lapin copy.
J'ai revérifié cela, car j'avais peur que Squeak ne duplique tout, même l'image, ce qui risquait de consommer une belle quantité de mémoire.
lapin2 image = lapin image "= true"
En faisant juste ce test, on voit qu'il n'a conservé qu'une seule référence à l'image malgré la copie de l'instance "lapin". D'où une consommation moindre de mémoire.
Pour animer les lapins par eux-mêmes, il y a la méthode #step, et les méthodes associées, de la classe Morph. Ces méthodes permettent d'exécuter du code à intervalle régulier. Il y a un tutorial sur ce sujet ici:
http://www.squeak.org/tutorials/morphic-tutorial-1.html
Je trouve que le fait que les classes et méthodes de Squeak ne soient pas systématiquement documentés comme par exemple le sont celles du framework Cocoa d'apple en Objective-C est un sérieux handicap pour les newbies du smalltalk comme moi. Je n'ai par exemple choisi une OrderedCollection pour ranger mes lapins qu'après moult essais foireux, alors que les NSMutableArray sont clairement indiqués pas Apple comme étant les structures dédiées au stockage d'objets.
NSMutableArray est un beau piège, car cette classe est en fait une collection et non un array. Pour un vrai array, on doit utiliser la primitive C.
La documentation n'est pas géniale, mais en même temps comme tout est toujours disponible, il y a des centaines d'exemples qui n'attendent qu'à être explorés. J'utilise souvent les menus du navigateur pour retrouver les méthodes qui implémentent ou qui envoient tel ou tel message, que je trouve assez efficace, ou l'usage des variables dans le code.
Je suis d'accord que Morphic est vraiment très peu documenté alors que c'est sous doute la partie de Squeak qui le distingue de la masse._______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Le Tue, 23 Aug 2005 08:43:26 +0200 "michele.drechsler" michele.drechsler@wanadoo.fr écrivait :
MD > Bonjour,
Bonjour,
MD > Pourriez-vous me renseigner et me dire si Squeak est un logiciel libre . MD > Quelle est la licence ?
Un article ici :
http://minnow.cc.gatech.edu/squeak/159
La Licence "Squeak-L" semble assez "discutée" par certains puristes de l'Open Source..
Un panorama de la galaxie :
http://directory.google.com/Top/Computers/Open_Source/Licenses/
le lien Squeak est cassé :-(((
MD > Cordialement MD > Michèle Drechsler
Jacques
Bonjour,
Merci à tous pour votre aide, grâce à ces indications, je suis arrivé à un résultat pas trop mauvais. (bon, le fait est que j'ai forcé Squeak à quitter sans sauvegarder, mais je devrais remettre tout en place assez vite.)
J'ai cependant un soucis : les images du lapin apparaissent correctement, mais pour les animer, j'hésite entre plusieurs solutions, et j'aimerais que vous me disiez laquelle a votre préférence :
1) Créer comme dans ce tutoriel : http://www.squeak.org/tutorials/ morphic-tutorial-1.html une classe testMorph. Le problème est que je ne sais pas en quoi transformer la ligne :
lapin := (PNGReadWriter formFromFileNamed: 'lapin.png') asMorph.
car je ne suis pas arrivé à implémenter une fonction asTestMorph en copiant asMorph.
2) Transformer ma classe Lapin (qui est la classe modele) en sous- classe de morph, cela me fait abandonner le principe modèle-Vue- Controleur, mais bon, c'est pas bien grave, puisque l'application n'aura pas à évoluer...
3) j'ai aussi penser à modifier directement la classe Morph, mais cela a fait planter Squeak :(
4) quant à "l'émulation" (ajout des méthodes du tutoriel à la classe Lapin) c'est impossible : il faut recopier trop de méthodes à partir de la classe Morph, ca n'a aucun sens...
5) vos idées à vous... Voilà.
Cordialement.
Edouard
P.S. Merci Stéphane de maintenir tes livres gratuits et de permettre l'accès aux autres. Sont ils sous FDL ?
Ils sont sous: lis-les et apprends license. :)
J'ai l'accord des auteurs et des editeurs pour qu;ils soitent sur le web et gratuits.
Stef
On 24 août 05, at 11:14, Edouard KLEIN wrote:
Bonjour,
Merci à tous pour votre aide, grâce à ces indications, je suis arrivé à un résultat pas trop mauvais. (bon, le fait est que j'ai forcé Squeak à quitter sans sauvegarder, mais je devrais remettre tout en place assez vite.)
J'ai cependant un soucis : les images du lapin apparaissent correctement, mais pour les animer, j'hésite entre plusieurs solutions, et j'aimerais que vous me disiez laquelle a votre préférence :
- Créer comme dans ce tutoriel : http://www.squeak.org/tutorials/
morphic-tutorial-1.html une classe testMorph. Le problème est que je ne sais pas en quoi transformer la ligne :
lapin := (PNGReadWriter formFromFileNamed: 'lapin.png') asMorph.
car je ne suis pas arrivé à implémenter une fonction asTestMorph en copiant asMorph.
- Transformer ma classe Lapin (qui est la classe modele) en sous-
classe de morph, cela me fait abandonner le principe modèle-Vue- Controleur, mais bon, c'est pas bien grave, puisque l'application n'aura pas à évoluer...
- j'ai aussi penser à modifier directement la classe Morph, mais
cela a fait planter Squeak :(
- quant à "l'émulation" (ajout des méthodes du tutoriel à la
classe Lapin) c'est impossible : il faut recopier trop de méthodes à partir de la classe Morph, ca n'a aucun sens...
- vos idées à vous...
Voilà.
Cordialement.
Edouard
P.S. Merci Stéphane de maintenir tes livres gratuits et de permettre l'accès aux autres. Sont ils sous FDL ? _______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Bonjour encore
Le 24 août 05 à 12:08, stéphane ducasse a écrit :
Ils sont sous: lis-les et apprends license. :)
;)
Grâce à votre aide, j'ai bien avancé merci.
J'ai fait une classe LapinMorph avec laquelle je représente mes lapins. J'ai implémenté une animation dedans, et quand, dans un Workspace je fais :
rand := Random new initialize. toto := LapinMorph new initialize:rand. toto Couleur:'Blanc'. toto openInWorld. toto startAnimation
Ca marche sans problème.
Mais par contre, dans une méthode de la classe clapier, je fais cela :
unLapin startAnimation. uneLapine startAnimation.
unLapin et uneLapine renvoie chacun vers une instance de Lapin, qui font passer le message startAnimation à leur représentation morphiques.
J'ai la certitude que ces représentations ont été correctement initialisées.
Là, ça bugue pas mal...
Ces deux lignes sont dans une boucle qui se répète deux fois le nombre de lapins. Je suppose que le bug vient de là... Si il existait une commande comme sleep() en C, je pense que cela pourrait régler le problème...
Je voulais mettre le fichier en FTP mais je n'y parviens pas, j'essaierai demain. Cordialement
Edouard
On 24 août 05, at 22:25, Edouard KLEIN wrote:
Bonjour encore
Le 24 août 05 à 12:08, stéphane ducasse a écrit :
Ils sont sous: lis-les et apprends license. :)
;)
Grâce à votre aide, j'ai bien avancé merci.
J'ai fait une classe LapinMorph avec laquelle je représente mes lapins. J'ai implémenté une animation dedans, et quand, dans un Workspace je fais :
rand := Random new initialize. toto := LapinMorph new initialize:rand.
petite remarque de conception. Passer le nombre aleatoire de l'exterieur semble moche :) il vaudrait mieux redefinir initialize
comme suit initialize super initialize ... rand := Random new.
toto Couleur:'Blanc'.
pas de C majuscule
toto openInWorld.
Peut etre que tu devrais redefinir openInWorld
openInWorld super openInWorld. self startAnimation.
toto startAnimation
Ca marche sans problème.
Mais par contre, dans une méthode de la classe clapier, je fais cela :
unLapin startAnimation. uneLapine startAnimation.
unLapin et uneLapine renvoie chacun vers une instance de Lapin, qui font passer le message startAnimation à leur représentation morphiques.
J'ai la certitude que ces représentations ont été correctement initialisées.
Mais tu devrais plutot utilise les methodes stepping, stepTime, startStepping de morph car Morph te donne cette possibilite
Là, ça bugue pas mal...
Ces deux lignes sont dans une boucle qui se répète deux fois le nombre de lapins. Je suppose que le bug vient de là... Si il existait une commande comme sleep() en C, je pense que cela pourrait régler le problème...
Je voulais mettre le fichier en FTP mais je n'y parviens pas, j'essaierai demain. Cordialement
Edouard _______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
squeak-fr@lists.squeakfoundation.org