Aus Das deutschsprachige Scratch-Wiki

Im Gegensatz zu fast allen anderen Programmiersprachen ist die Ausgabe von zuvor nicht definiertem Text in Scratch etwas eigenwillig.

In der Programmiersprache Python zum Beispiel schaut das typische Vorzeigeprogramm, welches "Hallo Welt!" ausgibt, so aus:

 print ("Hallo Welt!")

würde man die Zeile wiederholen, erhält man den Text mehrfach

 while(True):
   print ("Hallo Welt!")

Das obige Programm ("while (True):" ist die Python-Variante von "wiederhole fortlaufend") ergibt eine endlose Liste von Hallo Welt! untereinander:

 Hallo Welt!
 Hallo Welt!
 Hallo Welt!
 Hallo Welt!
 ...

In Scratch gibt es keine einfache direkte Entsprechung dieses Verhaltens, im Folgenden werden aber einige Methoden zur Textausgabe vorgestellt und diskutiert.

Textausgabe über die Sprechblase

Die einfachste Möglichkeit zur Ausgabe eines Textes ist der Sage ()-Block oder der Denke ()-Block. Der Befehl muss von einer sichtbaren Figur ausgeführt werden.

sage [Hallo Welt!]

Die Scratch-Katze sagt "Hallo Welt!" mit Hilfe des Sage-Blocks

Wird der Block mehrfach hintereinander ausgeführt, erscheint jeweils nur der Inhalt des letzten Befehls, sodass wiederholtes Ausführen des Blocks mit demselben Text keinen sichtbaren Effekt hat. Mit einem leeren Sage- oder Denke-Block wird die Ausgabe gelöscht.

Um den ausgegebenen Text nicht auszutauschen, sondern zu ergänzen, ist eine Variable notwendig:

Definiere print [text]
setze [textspeicher v] auf (verbinde (textspeicher) (text))
sage (textspeicher)

print [HalloWelt!]

Nun wächst der ausgegebene Text in der Variable an

Die Variable muss gegebenenfalls zuvor mit einem Leerstring initialisiert werden. Auf diese Weise können ca. 200 Zeichen dargestellt werden. Um eine neue Zeile zu beginnen muss ein Zeilenumbruchszeichen in den Text eingefügt werden. Dieses kann in Scratch zum Beispiel in Windows durch gedrückt halten der linken Alttaste und der Eingabe von 0 1 0 auf der Zehnerblocktastatur eingegeben werden. Groß-/Kleinschreibung im Text wird richtig wiedergegeben.

Mit Zeilenumbruch

Anzeige eines Kostüms mit vorgefertigtem Text

Wenn der anzuzeigende Text bereits vor dem Programmstart feststeht, ist die einfachste Methode, den Text auf ein Kostüm einer Figur zu schreiben und dieses dann an der gewünschten Programmstelle anzeigen zu lassen. Es empfiehlt sich die Verwendung eines Kostüms im Vektorformat, da dann der Text später noch editiert werden kann und die Zeichen auch bei Vollbildskalierung gut aussehen.

Die Textfarbe und der Hintergrund kann bei dieser Methode frei gewählt werden, auch ein transparenter Hintergrund ist möglich. Für die Schriftart gibt es im grafischen Editor derzeit sechs verschiedene Wahlmöglichkeiten.

Textausgabe durch Anzeige einer Liste mit einem Element

Um größere Mengen von Text anzuzeigen, kann man eine Liste auf der Bühne anzeigen lassen, deren Rahmen auf die Größe des gewünschten Textfeldes skaliert. Durch geschicktes Verschieben und Vergrößern ist es auch möglich, die gesamte Bühne zu bedecken. Das Ausgeben eines Textes erfolgt nun durch Verändern des Listeninhalts.

Das folgende Projekt setzt diese Methode um, wobei immer nur das erste Element der Liste verwendet wird:


63690808_144x108.png

Ausgabe über ein Listenelement

Schriftfarbe, Hintergrund und Schriftgröße sind bei dieser Methode durch das Aussehen einer Listenanzeige vorgegeben, d.h. die Schrift ist weiß und der Hintergrund ist braun. Durch Darüberlegen einer Figur als halbdurchsichtiges Rechteck kann die Farbe etwas verändert werden. Groß-/Kleinschreibung im Text wird richtig wiedergegeben.

Auf diese Weise können 25 Zeilen mit insgesamt ungefähr 2000 Zeichen dargestellt werden. Die genaue Anzahl hängt von der Breite der verwendeten Zeichen ab - das kleine l ist bedeutend schmaler als das große M. Leider kann nicht vorhergesagt werden in welcher Zeile man sich befindet. Text ab der 26. Zeile ist auf der Bühne nicht mehr sichtbar.

Textausgabe durch Anzeige einer Liste mit mehreren Elementen

Um mehr Kontrolle über die aktuelle Zeile zu haben kann die Liste auch je ein Element pro Zeile enthalten. Zwischen den Zeilen befindet sich dann jeweils ein weißer Strich. Bei dieser Methode ist aber darauf zu achten, dass die Zeilenlänge nicht überschritten wird, da sich sonst ein Umbruch und eine Doppelzeile ergibt.

Das folgende Projekt verwendet die Methode der mehrfachen Listenelementesetzt diese Methode um, wobei immer nur das erste Element der Liste verwendet wird:


12575605_144x108.png

Mehrere Listenelemente

Textausgabe durch Stempeln von Figuren

Eine andere Möglichkeit zur Textausgabe ist das Stempeln der Buchstaben durch eine Figur welche Kostüme für jedes druckbare Zeichen enthält.

Das folgende Projekt setzt diese Methode um:


14370703_144x108.png

Textengine mit Stempelmethode

Wenn es im Zeichensatz sowohl Groß- als auch Kleinbuchstaben gibt, ist eine Funktion zur Unterscheidung zwischen Groß- und Kleinschreibung auszuprogrammieren.

Durch Verändern der Kostüme und der Größe der stempelnden Figur können unterschiedliche Schriftarten und Schriftgrößen dargestellt werden. Durch die relativ geringe Auflösung von 480 mal 360 Pixel sollte jedoch eine eher kleine Schrift verwendet werden.

Der Lesbarkeit wegen sollte jedoch eine Zeichengröße von ca. 15 Pixeln Höhe und 10 Pixeln Breite nicht unterschritten werden, d.h. es sind ungefähr 1000 Zeichen darstellbar. Eventuell vorhandene Vektorinformation geht beim Stempeln verloren. Gestempelte Schrift ist immer vor der Bühne aber hinter den Figuren, was ein Problem darstellen kann, wenn große Teile der Bühne von Figuren überdeckt sind.

Textausgabe durch Klonen von Figuren

Statt Stempeln ist es auch möglich, ein Zeichen durch Klonen einer Figur darzustellen, wie zum Beispiel in folgendem Projekt gezeigt. Durch diese Methode kann die Schrift auch vor den Figuren statt nur hinter ihnen gezeigt werden.

26173457_144x108.png

eine Klon-Textengine

25323248_144x108.png

andere Klon-Textengine

Falls die Kostüme die darzustellenden Zeichen im Vektorformat enthalten, sind auch kleinere Zeichen bei Vergrößerung der Bühne noch gut lesbar. Durch das Limit von insgesamt 300 Klonen in Scratch sind aber immer nur höchstens 300 Zeichen darstellbar.

Textausgabe durch Zeichnen mit dem Stift

Eine weitere Möglichkeit ist die Textausgabe durch Zeichnen mit dem Stift. Hier enthält eine Figur für jedes darzustellende Zeichen Positionieranweisungen um das Zeichen mit dem Stift zu zeichnen. Diese Methode ist aufwändig zu programmieren, stellt die Schrift aber sehr schnell dar. Wie beim Stempeln ist die Schrift immer vor der Bühne aber hinter den Figuren.


17356332_144x108.png

Pen-Textengine


Code zum Einbinden ins Forum:
[wiki=de:Textausgabe]Textausgabe[/wiki]