Andreas Gerdes wrote:
Klaus,
ich glaube, was additionsToViewer etc. angeht, bist du auf der squeak-dev-Liste besser aufgehoben - du schreibst ja selbst, du willst einen Morph erfinden...
Ich hab grad mal selbst experimentiert. Einer eigenen Morphklasse einen Slot hinzuzufügen, ist kein Problem, einer bestehenden Klasse eine neue Viewer-Kategorie, auch nicht, aber da dann einen Slot oder einen Befehl hineinzubekommen, geht nicht, jedenfalls nicht beim SketchMorph. Hm...
Das hängt mit der Sprachunterstützung zusammen.
Inwiefern? Was weißt du noch zu dem Thema? Kann hier jemand mal den Begriff Vokabular/EToy-Vokabular etwas näher erläutern?
Ich habe das aus dem Archiv von Squeak-dev: http://lists.squeakfoundation.org/pipermail/squeak-dev/2002-June/040953.html
Zu deiner letzten Mail:
- Wie bekomme ich die Mausposition in einem Script?
Playfield hat in der Viewer-Kategorie playfield die aktuellen Mauskoordinaten.
Klar! Das Playfield weiß, wo die Maus steht! ...
- Wie sorgt man dafür, dass Größenänderungen an die Submorphs weitergegeben werden?
- Umgekehrt: Wie sorgt man dafür, dass ein Resize im Submorph an den Besitzer weitergegeben wird ODER
Du musst wohl neue Morphklassen ableiten, die sich in ihrer Step-Methode entsprechend verhalten.
Das habe ich inzwischen gemacht. Ich veranlasse bei den Kindern einen entsprechenden resize
Oder aber du befasst dich mit layoutPolicy/Tablelayouts (z.B. im Menü eines Rechtecks, gibt ein Tutorial dazu auf Squeakmap), vielleicht reicht das ja schon?
Das muss ich mir noch genauer anschauen.
wie sorgt man dafür, dass man einen Submorph nicht selektieren kann.
Schwierig - selektieren von Morphs explizit zu verbieten... ist irgendwie nicht squeaklike - ALLES in Squeak lässt sich selektieren, inspizieren, kopieren -
Das muss ich berücksichtigen. Ich habe aber herausgefunden, dass ich bei dem eingebetteten Morph nur dafür sorgen muss, dass #containsPoint immer false zurückgibt. Ich brauche das für eine Physik-Simulation. Dort sind die Koordinatenachsen aneinander gekoppelt und man sollte eine Achse nicht isoliert drehen können.
- Wenn ich Morphs zusammensetze: Welche Koordinate verwende ich? Offensichtlich verwendet man in drawOn absolute Screenkoordinaten. Wenn ich aber mit addMorph einen Morph hinzufüge, erscheint dieser an einer 'position' relativ zur oberen linken Ecke des Morphs.
Das scheint nur so. Wenn du deinem Morph *keine* layoutPolicy zuweist und ihn *vor* dem addMorph:xyz schon verschiebst, erscheint der neu hinzugefügte xyz an 0/0 auf dem Screen. Im Morph-Protokoll geometry findest du alles, was du für relative/globale Koordinaten brauchst.
Danke!
- Wie kann ich eigenes Vokabular definieren? Ich will einen Morph (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. "verstehen"
Zuerst mal geht's doch darum, eine *Message* "skalieren: faktor" zu implementieren?
Das ist ja kein Problem. Ich kann den Morph leicht schreiben. Aber wie "redet" der mit dem Player / mit dem Viewer?
Schon mal Diego Gomez' Plotmorph probiert (bekommst du über Weltmenü->Öffnen->SqueakMap-Packageloader)
Danke für den Tipp
Was hast du eigentlich vor? Willst du mit EToy einen Graph-Editor bauen? KRASS...
Eigentlich will ich Bausteine, die die Kinder zusammensetzen können, um beispielsweiese Säulendiagramme, "Tortendiagramme", ... zu konstruieren. Außerdem "riecht" Squeak danach, dass man hier eine gute Geometriesoftware zusammenschreiben könnte.
Gerade eine Geometriesoftware darf nicht nur interaktiv sein. Die Schüler müssen auch eine Konstruktion eintippen können, die vom System dann ausgeführt wird.
Mich würd auch interessieren, wo, mit welcher Altersgruppe etc. du Squeak einsetzt.
Ich habe das bereits in der 12 eingesetzt. Da haben wir "normal" in einem Browser programmiert. Jetzt will ich es in der 7 einsetzen in einer Programmier-AG, in der viele Mädchen sind.
Viele der amerikanischen Beispiele sind mir zu simpel / zu sehr auf Grundschulniveau. Ich fange (morgen oder am Mittwoch nächste Woche) mit EToys an und verwende eine Auto-Simulation o.ä. Aber die Lerngruppe ist (zwar chaotisch aber) sehr interessiert und die Kinder werden schnell versuchen, mathematische Themen auf Squeak zu übertragen (ich bin auch deren Mathematiklehrer). Das ist auch meine Absicht. Ich möchte, dass sie sich in einem "Mathe-Land" bewegen und intuitiv lernen können.
Das bedeutet hier aber lernen auf höheren (PISA-) Niveaus. Es geht nicht um Rechentrainer o.ä.; es geht darum, Proportionalität oder Funktionen oder Statistik oder Geometrie zu "erfahren".
Die Beispiele, die ich auf Squeakfoundation etc finde, überzeugen mich nicht immer. Sie enthalten vom Konzept her noch zu viel des gleichen (zeichne einen Sketch und lasse ihn rumlaufen).