Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Text Engine

Eine Text Engine ist eine in Scratch programmierte Teil-Funktionalität eines Projektes, die vom Hauptprojekt zur graphischen Textausgabe genutzt wird. Dies wird benötigt, weil Scratch keine speziellen Befehlsblöcke zum Abbilden von Text auf der Bühne hat. Text wird in Scratch statt dessen meist in Sprechblasen der Figuren gezeigt oder als Listeeneinträge dargestellt. Mit beiden Methoden kann man aber Größe, Farbe, Layout und Typographie des Textes nicht beeinflussen: Sprechblase und Listeneinträge stellen den Text immer auf eine vorgegeben Art dar, quasi wie ein Text-Terminal-FensterWikipedia.jpg. Um dies zu überwinden, muss der Text auf die Bühne gemalt oder gestempelt werden. Will man hierfür eine flexible Lösung, die nicht nur bestimmte, sondern alle möglichen Texte darstellen kann, benötigt man eine Text Engine.

Idealerweise übergibt das Hauptprojekt den Text und ggf. weitere Parameter zur Darstellung an die Text Engine, die ihn auf die Bühne malt oder stempelt. Daher braucht man eine vorhandene Text Engine, die recht komplex sein kann, nicht in ihrer Tiefe zu verstehen um sie selber als Teil seiner Projekte zu nutzen: Es reicht wenn man weiß wie man sie aufruft, was man meist schnell herausfindet, wenn man sich andere Projekte ansieht, die mit dieser Engine arbeiten.

Ein Text Engine ist ein Hilfswerkzeug in einem Programm zur Textausgabe. In Scratch gibt es hiervon zwei verschiedene Arten. Einerseits gibt es Text Engines mit vielen Kostümen für alle benötigten Schriftzeichen, andererseits Pen Text Engines, bei denen die Texte mit dem Malstift gezeichnet werden.

Zweck und Verwendung

Text Engines machen sich erst dann nützlich, wenn der anzuzeigende Text nicht festgelegt ist und variieren kann. Beispiele, bei denen sie oft gebraucht werden, sind Anzeige der Punktzahl oder Textbearbeitungsprogramme. Hierbei empfiehlt sich die Nutzung von Case Sensing, um erkennen zu können, ob ein Buchstabe in Groß- oder Kleinschreibung vorliegt.

Text Engine mit Kostümen

Methode

Bei einem Text Engine mit Kostümen erhält eine Figur alle Buchstaben des Alphabets und, falls benötigt, Zahlen, Satz- und Sonderzeichen. Die Figur wandert der Reihe nach zu allen Stellen, an denen ein Buchstabe entstehen soll und erzeugt dort einen Abdruck oder einen Klon.

Vorteile

Ein Text Engine mit Kostümen ist einfach zu programmieren und erfordert nicht viel Zeit. Außerdem stehen auch viele Schriftarten zur Verfügung (vorausgesetzt, man verwendet andere Bildbearbeitungsprogramme als das Malprogramm in Scratch), die man nicht selber erstellen muss. Es geht hier auch einfacher, Zeichen, die man nicht verwenden kann, weil sie nicht programmiert wurden, durch Fehlerzeichen zu ersetzen. Dazu verwendet man folgenden Skript:

wiederhole (Länge von [Text]) mal
ändere [x v] um (1)
wechsle zu Kostüm (Zeichen(x)von[Text])
erzeuge Klon von [mir selbst v]
wechsle zu Kostüm [Fehler v]

Da das Kostüm nur dann wechselt, wenn es das entsprechende Kostüm auch wirklich gibt, wird, wenn es kein gespeichertes Zeichen für die Eingabe gibt, nur das momentane Kostüm beibehalten, das ja die Fehlermeldung ist. Damit wird ein Klon erschaffen und das Fehlerzeichen angezeigt.

Nachteile

Viele Klone können das Programm zum Laggen bringen, Malspuren dagegen könnten etwas unscharf dargestellt werden.

Pen Text Engine

Methode

Bei einem Pen Text Engine, kurz auch PTE genannt, entstehen die Buchstaben durch Malspuren. Der Stift wird auf den Canvas gesetzt, zeichnet die vorgegebene Strecke und wird anschließend wieder abgesetzt, um zur nächsten Position zu gehen.

Vorteile

Text wird mit dem Malstift schneller geschrieben wird als mit Kostümen.[1]

Nachteile

Die Erstellung eines PTEs ist sehr aufwendig und erfordert viele Skripte, die gegebenenfalls über komplexe Formeln verfügen müssen. Zudem kann die Ebene des Textes nicht bestimmt werden.

Beispiel-Engines

Einzelnachweise

  1. https://scratch.mit.edu/projects/88564231/
  2. https://scratch.mit.edu/projects/176021042/



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