Texte eingeben, positionieren und in der Größe verändern


Workshop - Input Text


Erforderliche Module: ldr.4BitGoDot, mod.ClipWorks, evtl. mod.Scroll, mod.Tile, mod.Squeeze2Clip und mod.StretchClip


Ein Text kann (vorläufig) nicht komplett über die Tastatur eingegeben werden. Texte muß man Buchstabe für Buchstabe auf ein sonst leeres Blatt schreiben. Das ist zwar umständlich, läßt uns aber genügend Freiheit für die Positionierung, z.B. bei Unterschneidungen (wenn Buchstaben bedingt durch ihre Form scheinbar zu weit voneinander entfernt stehen).

Ich habe einige Schriften (Fonts) in GoDot-Clips konvertiert, die ihr bei uns downloaden könnt. Zusammen mit den Neuerungen des letzten Jahres sind sie auch im Sharepack #3 enthalten, der über uns bezogen werden kann. Die Fonts wurden von Windows Truetype(tm)-Fonts abgeleitet und sollen euch als Anregung dienen, selber Schriften zu konvertieren.


Es hat sich durch die Arbeit ergeben, bestimmte Vorbereitungen zu treffen:

  • Da Texte in GoDot wie ein selbständiges Bild zu verstehen sind, das später über das eigentliche Bild drübergelegt wird, muß man sie auf transparentem Untergrund zusammenstellen. GoDots Transparenzfarbe ist schwarz.
  • Da unter Umständen die Transparenzfarbe mit der Hintergrundfarbe identisch ist, die nicht blinkt, wenn ein Clip gezeigt wird, ist es vorteilhaft, im Vordergrund eine Farbe zu erzeugen, die sich beim Blinken verändert.
  • Man sollte sich darüber Klarheit verschaffen, welche Größe der gewünschte Font (die Schriftart) hat, damit man die Anzahl der Zeichen, die auf eine Zeile passen, kennt. Will man die Schrift später bearbeiten, sollte man nicht in Zeile 0, Spalte 0 anfangen, sondern beide Positionen mindestens um 1 einrücken. Eine Bearbeitung kann nämlich die Schriften (erheblich) ausdehnen.

Also Schritt für Schritt zum Blatt "Papier":

Load: 4BitGoDot
Inst: ClipWorks
Execute
Full
ClrClp
(Select:) grün
(oder irgend eine andere Farbe außer schwarz)
Inside
Leave
Accept
(oder auch Cancel, ist hier egal)
Display
Execute
ClrClp
(Select:) schwarz
Inside
Leave
Hor: 6
Ver: 6
Row: 1
Col: 1
Accept

Jetzt hat man einen transparenten Hintergrund, einen blinkfähigen Vordergrund in grün und die Position des ersten Buchstabens an Zeile 1, Spalte 1 festgelegt. Der Font wurde hier mit einer Größe von 6x6 angenommen (der Font "Snap" im Beispielbild ganz oben hat diese Größe).


Nun kann man anfangen die Buchstaben zu positionieren. Dazu wechselt man zwischen dem ldr.4BitGoDot und mod.ClipWorks hin und her. In ClipWorks wird die Position bestimmt, an die der Lader den Buchstaben dann holt.

Load
Source: Disk
Load: to Clip
Replace
Load "sF.clp"
(der erste Buchstabe im Beispiel: Snap, groß-F)
Cancel Load
Execute
Col: 6
(alte Position plus 5)
Show

Warum nicht auf Col: 7, der Font ist doch sechs Zeichen breit? Nun, ganz einfach, nur die ausladendsten Buchstaben (wie "M" oder "W") überstreichen die ganze Breite, die meisten sind schmaler, Kleinbuchstaben haben im allgemeinen sogar nur eine tatsächliche Breite von 4 statt 6. Damit man sich sicher ist, daß keine Überschneidung stattfindet, die einen Teil des vorherigen Zeichens wieder löschen würde, schaut man sich mit Show an, ob alles in Ordnung ist und kann wenn nötig die Angabe hinter Col: korrigieren.

Man sieht dann an der Färbung des Blinkens, wie man vorgehen muß. Hellrot (wenn man grün als Vordergrundfarbe gewählt hat) erscheinen alle problemlosen Stellen. Hellgrau gefärbt sind Überlappungen. Sind hellblaue Anteile darunter, wird das vorherige Zeichen beeinflußt, dann also Vorsicht.

ClipWorks/ Show:

Farben beim Positionieren

Hellrot: ok
Hellgrau: Überlappung
Hellblau: Achtung
, paßt nicht!

Es kann nun sein, daß die Form der beiden Nachbarbuchstaben auch eine starke Überlappung erlaubt ("K" und "O" passen nahe aneinander, ohne gegenseitig zu verschmelzen). Dann stellt man den Clip entsprechend ein, wählt aber im Lader die Option Compose Foreground. Sollte das schiefgegangen sein und die Buchstaben hängen doch unkenntlich ineinander, muß man die letzten beiden Zeichen erneut eingeben.

Für ganz genaues Arbeiten kann man das "Blatt" mit mod.Scroll auch pixelweise hin- und herschieben und erst dann laden. Nach dem Laden muß das Blatt um dieselbe Anzahl Pixel zurückgescrollt werden.

Beginnt eine neue Zeile, wird der Wert Row: auf 7 erhöht und Col: wieder zurückgestellt auf einen kleineren Wert usw. bis der Text vollständig eingegeben ist.


Wenn man es sowieso vorhat, ist es sinnvoll, einen Text gleich zu Anfang zu vergrößern bzw. zu verkleinern (man nennt das auch "Skalieren"), alle weiteren Bearbeitungen beziehen sich dann auf die endgültige Größe:

  • Eine exakte Halbierung der Schriftgröße erreicht man am schnellsten mit mod.Tile. Eine weitere Halbierung ist immer noch (in Multi!) lesbar, eine dritte Halbierung ist aber weniger empfehlenswert und hat nur noch Effektcharakter.
  • Will man Zwischengrößen erreichen, nimmt man besser mod.ClipWorks Shrink oder mod.Squeeze2Clip. Siehe dazu auch die Workshops #7 und vor allem #11.
  • Für Vergrößerungen sind mod.ClipWorks Zoom und mod.StretchClip gedacht. Eine exakte Verdopplung erreicht man, wenn das Seitenverhältnis auf dem C64-Bildschirm eingehalten wird, z.B. wenn man einen Clip der Breite 8 und Höhe 5 auf 16x10 skaliert. Geht das nicht, gibt es geringfügige Verzerrungen, die meist nicht weiter ins Gewicht fallen.

Skalierungen mit Text

Links oben wurde die Schrift verdoppelt, links unten exakt halbiert. Rechts oben sieht man die Viertelung. Ein Achtel der Größe (rechts unten) ist nicht mehr lesbar.


Da mit wachsender Größe die Buchstabenränder immer unansehnlicher werden, beschäftigen sich andere Abteilungen dieses Workshops mit der Bearbeitung der Zeichenränder. Doch erst einmal weiter zur Einfärbung des Textes.

[ zurück ]


Arndt Dettke
support@godot64.de

Copyright © 1996, A. Dettke, letzte Änderung - 19.12.2008