Texte einfärben


Workshop - Textcolors


Erforderliche Funktionen/Module: Palette, mod.ApplyColors, mod.RendrdTo4Bit, mod.ClipWorks


Die einzelnen Zeichen eines Fonts (einer Schriftart) sind in GoDot immer weiß auf schwarz abgelegt. Outline-Fonts (Schriften, die innen hohl erscheinen), haben wir aus Flexibilitätsgründen mit der Farbe dunkelgrau aufgefüllt, sie können nun innen ohne Umstände umgefärbt werden.

Weiß auf schwarz muß aber nicht zwingend so bleiben, es ist ein leichtes, Texte neu einzufärben. Es gibt den Normalfall (alle Zeichen gleiche Farbe) und den Sonderfall (Zeichen unterschiedlich färben).

Gehen wir davon aus, daß ein fertig getexteter Bildschirm vorliegt. Alle Zeichen sind also weiß auf schwarzem Grund.


Normalfall: wenn wir alle Buchstaben z.B. orange färben wollen, gehen wir wie folgt vor:

Inst: ApplyColors
Palette
(Default)
(pick:) orange
(set:) weiß
Display
(zur Kontrolle; jetzt könnte man noch weitere Farben ändern)
Accept
Execute

Im Ergebnis sind nun alle 4Bitwerte, die weiß repräsentieren, ersetzt worden durch diejenigen, die orange darstellen. Man kann selbstverständlich auch zwei Farben gleichzeitig setzen. Im Beispiel oben haben wir bei der Schrift Desdemona den Palette-Requester nicht extra zweimal aufgerufen, sondern in einem Rutsch weiß und dunkelgrau ausgetauscht.

Beachtet bitte, daß mod.ApplyColors erst ab Version 1.01 die Palette direkt bei der Ausführung wieder auf die Ausgangswerte zurückstellt (automatisches Default). Die 1.00-Version tut das nicht, und man muß die Palette ausdrücklich von Hand auf die Normalfarben zurücksetzen. Das erwähne ich deswegen an dieser Stelle, weil man bei einem Display den Unterschied zunächst nicht bemerkt, die ersetzte Farbe kommt ja im Bild nicht mehr vor! Daher die Anweisung Default in der obigen Befehlsliste.

Die Anwendung von mod.ApplyColors erhält die interne Auflösung des Bildes, es wird nur umgefärbt.


Nun der Sonderfall. Manchmal möchte man vielleicht einen Schriftzug mehrfarbig gestalten (wie wir es im Beispielbild etwas übertrieben haben).Man braucht dazu mod.ClipWorks und am Schluß mod.RendrdTo4Bit. Bleiben wir bei unserem Bildbeispiel, die beiden ersten Buchstaben sollen gelb und violett sein:

(Exec Area: Full
Display)

Inst: ClipWorks
Execute
Hor: 5
Ver: 6
Row: 1
Col: 1
Accept

Palette
(pick:) gelb
(set:) weiß
Display
Accept
(oder besser Cancel, dann bleibt weiß unverändert)

Execute
Col: 6
Accept

Palette
(pick:) violett
(set:) weiß
Display
(Default)
Accept
(oder besser Cancel, wie eben)

Inst: RendrdTo4Bit
Execute

Wer nicht Cancel, sondern Accept im Palette-Requester gedrückt hat, würde am Schluß bei einem Display alle noch weißen Buchstaben trotzdem in violett angezeigt bekommen. Das Default vor dem letzten Accept verhindert das für diesen Fall.

Der große Nachteil dieser Methode besteht darin, daß mod.RendrdTo4Bit die Auflösung des 4Bitbildes reduziert auf das vom C64 im jeweils eingestellten Modus Darstellbare.


Damit sind nun die Grundlagen gesetzt, wir können Texte zusammenstellen und in einer gewünschten Grundfarbe einfärben. Genug Rüstzeug für die Feinheiten.

[ zurück ]


Arndt Dettke
support@godot64.de

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