[Squeak-fr] Re: RE : EToys: appel d'un script

Dreyfuss Pierre-André (EDU) pierre-andre.dreyfuss at edu.ge.ch
Mer 10 Oct 19:20:09 UTC 2007


J'ai mis un exemple de création d'objet par copie sur la page idiomes Etoys

http://community.ofset.org/index.php/E-toys_idiomes_de_programmation#Cr.C3.A9ation_d.27une_copie_d.27un_morph_par_programme.2C_les_anneaux_du_serpent

C'est tiré du projet du jeu serpent et concerne la création d'anneaux qui font grandir le serpent.


Vos questions sont efficaces pour faire progresser cette page :-)

Ci dessous quelques commentaires dans le texte.
-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Vincent Osele
Date: mer. 10/10/2007 18:35
À: squeak-fr at lists.squeakfoundation.org; squeak-fr at lists.squeakfoundation.org
Objet : [Squeak-fr] Re: RE : EToys: appel d'un script
 
Bonjour,

> Je pense que exécute lance le script comme processus (une fois)

Dans son propre thread si je comprends bien...

> l'instruction suivante peut être exécutée (ici Appel de script)  avant la fin du processus.

En effet.

Bon, ca va pas être facile d'expliquer ce problème de temps réel à mon fils !!

Je pensais introduire le temps réel d'ici 5 ou 6 ans, pas avant ;-))))

En général pour les enfants c'est plus simple de penser en terme d'agents autonomes. Des processus activés comme un objet avançant tout seul, un autre surveillant une touche appuyée pour le faire tourner est plus simple qu'une grande boucle comme au temps de logo faisant toutes les actions. A l'image de la vie réelle, ils pensent plus en terme d'actions concurrentes que simultanées.

Lorsque des problèmes de synchronisation se posent, c'est le moment de découvrir la nation d'ordre et de séquence ordonnée. Squeak offre des possibilités de résoudre le problème:

Mettre l'appel au deuxième script à la fin du script appelé en processus.
Mettre une variable logique à faux, qui sera mise à vrai par le processus à sa fin.
Et ... lancer un second processus qui attend le moment de lancer sa commande.

Pour exercer la catégorie contrôle des scripts, essayez de  construire avec votre fils des feux de circulation (3 ellipses sur une scène aux coins arrondis) et programmez la séquence qui allume automatiquement les différentes phases des feux (changement de couleur des ellipses). Utiliser  une variable numérique comme un compteur qui se décrémente à chaque tour et tester le passage à zéro  pour arrêter et lancer des scripts.C'est un projet qui a bien marché avec mes élèves. On peut le combiner comme extension avec la voiture qui suit la route. Si les feux changent  en même temps la couleur de la route, ils peuvent arrêter ou laisser passer la voiture.




> En principe, lors d'une copie, il faut affecter à une variable de type player la brique objet.copie pour
> avoir une poignée sur cet objet. La valeur de cette variable (brique saisie par la gauche (et non la
> flèche d'affectation)peut se substituer au nom du receiver,
> ce qui permet de faire exécuter un script ou des commandes par l'objet copié.

On fait les deux, soit par variable soit par appel direct d'un script 'init' sur objet.copie quand la copie peut s'initialiser toute seule.

Exact Je l'ai constaté en faisant l'exemple du serpent , je parle de phase d'initiation, ce pourrait être un script init. 


Dans la 2ième solution, on a une variable de moins ;-)

> Par contre en agissant ainsi on peut demander à des objets
> de faire des choses qu'ils ne savent pas faire.
> Par exemple demander à une ellipse de stocker un texte 

Ceci dit, on peut le faire aussi avec exécuter puisque dans la partie des noms de scripts apparaissent tout les scripts du monde entier et non pas seulement ceux de l'objet visé.

J'y ai pensé juste après l'envoi :-)

> Si la substitution d'objet est pour obtenir un changement de forme,
>il est beaucoup plus simple de changer le graphique de l'objet par
> leas commandes de la catégorie graphique pour les dessins, et la commande
> graphique dans la catégorie scène pour les scènes.

Oui, j'y ai pensé ce matin en rédigeant ce texte.
Bon, on a pas regardé encore le chg d'apparence.

Il y a la commande ressemble à ... qui a parfois une action trop forte , la ressemblance s'étendant au type de morph en plus de l'aspect graphique.

Mieux vaut les commandes modifiant le graphique.

Pour créer des objets de type dessin utiliser la palette du tiroir navigation, ou jeter des fichiers jpg gif ou png dans squeak. Pour les scènes utiliser le halo gris à droite.

En tout cas merci pour les explications claires. 

a+
Vincent
PS: au fait, quand je dis on, c'est pas une asscendance royale, c'est moi et mon fils ;-))


PS j'ai découvert tout récemment que les morphs tels que l'ellipse,le polygone et même le texte(je iens juste d'essayer transmettent leur image avec la commande (getter) graphique. Cette commande n'existe pas pour ces objets, mais on peut la piquer dans un dessin et changer le receiver pour la fabriquer (voir lus haut). Avec le texte, on obtient un texte sous forme d'image !!!

Une fois de plus Squeak prouve que si on a une idée logique ça marche.

Même avec la montre analogique et la montre digitale !!!!!


      _____________________________________________________________________________ 
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail 

-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: application/ms-tnef
Taille: 5599 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20071010/098f3dfd/attachment.bin


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