Hallo Guido,
Hat jemand ein Codesnipplet, wo Text entlang einer Kurve, Linie, rand
eines gemalten Objektes oder über eine Ellipse fließt? (Wie Demo in
Squeak 3.6!!)
Geht immer noch. Ellipse "aufmachen" (accept drops), Text
reindroppen, Text >> fill owner's shape,
aus demselben Text>> add successor", dieses (leere) Textfeld in
anderen Morph, auch diesen Text >> fill owner's shape,
et voila.... (obiges sind Menu Punkte im roten Halo)
Mir scheint, daß in ETOYS nicht alle vordefinierten Objekte über
ausreichende Methoden verfügen...
Yepp, da kann man noch beliebig viel verbessern.
Sehr seltsam ist es, wenn man z.B. einen Taschenrechner baut, 3
Textfenster hat, die man Eingabe1, Eingabe2, Ausgabe nennt, und dann
einen +-Button bastelt, der die Inhalte addiert. Kein Problem - nur -
lösche ich die beiden Textfenster und ziehe aus dem Objektbaukasten
neue
hin, benenne sie gleich, so werden sie intern in Squeak mit
Eingabe3 und
Eingabe4 bezeichnet, sodaß ich das Skript anpassen musste. Woran liegt
das? Hatte die Garbage-Collection noch die Objektnamen behalten, und
erhöht intern dann eigenständig die Zahl, oder woran liegt's?
In so einem Fall am besten Variablen (player) fuer den Rechner
spendieren, dann hast Du vollen Zugriff (ich vermute, die beiden
lagen noch im Trash, aber die Verbindung passiert ja aber auch nicht
(zum Glueck!!) ueber Namen...)
Weiterhin ist mir aufgefallen, daß z.B. im Image Tweak 3.8 eine
gehübschte Variante von ETOYS drin ist, die sogar noch einige Dinge
kann, die das normale EToys nicht kann, z.B. Bilder langsam
seitwärts zu
rotieren....
Ich möchte gerne EToys noch um einige Features erweitert sehen, hat
jemand vielleicht ein Tutorial, welches mir einen Überblück über die
internen Zusammenhänge von EToys gibt? Es geht um folgendes:
Wie übernehme ich z.B. aus Etoys objekten, wie Linie die
Koordinaten in
selber geschriebene Skripte .... mir fehlt nämlich noch ein sich mit
bewegender Pleuel zu meiner Kurbelwelle mit Zylinder ... den LineMorph
habe ich ja schon gefunden, nur - er bietet mir keine Methoden für die
xy-Koordinaten der Endpunkte an ... welche andere Methoden habe
ich? Ich
würde gerne so praktische Kleinigkeiten noch ergänzen ... Auch weiß
ich z.B. nicht, wie ich Eingabe aus Textfenstern in eine Formel
übernehme, daß ich einen XY-Plot oder eine Kurvendiskussion eines
Polynoms 2. Grades z.B. mal machen kann....(nicht das Plotten des
Graphen ist das Problem, sondern die Übergabe der Werte aus
getNumericValues in eine in Etoys definierte Variable hinein ...
"To extend the vocabulary of a Morph, you can just add methods named
like
additionsToVocabularyCategory* to the class side (look for such
methods to
get an idea). For each item, you typically need a method in Player
and the
corresponding method(s) in your Morph class.
For example, here is Morph class >>
additionsToViewerCategoryLayout
"Answer viewer additions for the 'layout' category"
^#(
layout
(
(slot clipSubmorphs 'Whether or not to clip my submorphs' Boolean
readWrite
Player getClipSubmorphs Player setClipSubmorphs:)
))
So this adds the 'clipSubmorphs' slot to the 'layout' vocabulary
category.
That slot (a pseudo-variable) is read/write, and is implemented by the
methods #getClipSubmorphs and #setClipSubmorphs on Player. Those
methods just
call back to the morph that is the Player's costume:
Player>>getClipSubmorphs
"Getter for costume's clipSubmorphs"
^ costume renderedMorph clipSubmorphs
The other kind of thing you can add (besides the pseudo-variable
'slot' type)
is the 'command' type, as in:
additionsToViewerCategoryMiscellaneous
"Answer viewer additions for the 'miscellaneous' category"
^#(
miscellaneous
(
(command doMenuItem: 'do the menu item' Menu)
(command show 'make the object visible')
These don't have an associated return value, but they can have a
single typed
parameter."
Aus einer Mail von Ned Konz an die Squeak-Dev-liste.
Was mich an Squeak 3.9 nervt ist, daß viele Projekte/Beispiele aus
älteren Versionen einfach nicht laufen ...Balloon 3D stürzt ab ... nun
Textverarbeitung und Tabellenkalkulation mit Squeak ist ja wirklich
einfach ... Powerpoint, Access ist ja auch enthalten - wirklich
Klasse....
Aber wenn ich mir diese Fenster gemalt habe, Daten speichere, alles
wunderbar ... ich möchte jedoch, daß die Daten in ein CSV - Datei auf
der Festplatte generell abgelegt werden ... mir behagt die Speicherung
im Image nicht wirklich so gut ... auch die mit dem Karteikasten nicht
so ... wie stelle ich den um, damit ich größere Textobjekte indizieren
und auf Festplatte speichere ... Haben die Squeak Planer das nicht
vorgesehen?
Fuer Etoys ist 3.9 nicht das beste System, am einfachsten Du nimmst
entweder das OLPC image,
oder das Teil von Squeakland.
Wenn Du lieber was mit Tweak machen moechtest, dann das neueste
Croquet...
Und noch eine Frage liegt mir am Herzen bezüglich Siblings ... Ich
programmiere ein kurzes Billiard-Skript, kein Problem, die Kugeln
laufen
perfekt, mit Kollision untereinander, verschwinden in den Pockets ...
Dann mache ich Geschwisterchen (Siblings) In Etoys, auch wunderbar ...
Kugel1... Kugel1s, Kugel2s .... und irgendwann stelle ich fest, daß
alle
nur ein Gehirn haben, also an ein Skript gekoppelt sind. Wie
erzeuge ich
unabhängige Kopien in EToys, die wirklich eigenständig editierbar
sind,
und wie kopiere ich eigentlich Kacheln in andere Skripte?
Letzteres geht leider (noch?) nicht, war aber wahrscheinlich einer
der treibenden Faktoren hinter Traits... ;-)
Ersteres mit dem hell(!)gruenen Kopierknopf, also sogenannte deep
copies machen,
da kopierst Du auch die Skripte mit und ikannst diese so unabaengig
aendern.
Und an wen melde ich am besten die unzähligen Bugs in Etoys, die ich
gefunden habe, wird Etoys noch wirklich gepflegt und weiterentwickelt?
Generell lieber viele Mails mit weniger Fragen, ich hab grad Sorge,
dass sich gleichzeitig noch jemand die Muehe macht, waere ja schade.
Und wenn du echte Fehler mit Etoys findest, dann am besten schauen,
ob sie auch in der OLPC Version sind, dort gibt es auch eine Trac Bug
DB und eine
Mailingliste, die Kollegen sind Dir fuer jeden gefundenen Fehler
dankbar.
So, viele konkrete Fragen, bin dankbar für jede Antwort ....
Viele Gruesse und keep on Etoying...
Markus