Bezeichnung
CreateFont -- erstellt eine Schriftart aus einem Pinsel (V10.0)
Übersicht
[id] = CreateFont(id, brushid, charmap, width, height, cols[, t])
Beschreibung
Dieser Befehl kann verwendet werden, um eine neue Schriftart aus einer Pinselquelle zu erstellen. Dies kann nützlich sein, wenn Sie mit benutzerdefinierten Schriftarten arbeiten müssen, die als Bilddateien verteilt werden, anstatt mit gängigen Schriftartformaten, wie es häufig in Spielen aus den 1980er und frühen 1990er Jahren und in Szenendemos der Fall war. Sie müssen den gewünschten Identifikator für die neue Schriftart im Argument id und den Identifikator der Pinselquelle im Argument brushid übergeben. Wenn Sie Nil in id übergeben, wählt CreateFont() automatisch einen Identifikator und gibt ihn zurück. Nachdem die Schriftart erfolgreich erstellt wurde, können Sie sie mit UseFont() als aktuelle Schriftart festlegen.

Der Parameter charmap muss auf eine Zeichenkette gesetzt werden, der die einzelnen Zeichen im Pinsel beschreibt. Die Zeichenabmessungen müssen in den Parametern width und height übergeben werden. Alle Zeichen müssen die gleichen Abmessungen haben. Die Anzahl der Zeichen pro Zeile muss im Argument cols übergeben werden.

Beispielsweise könnte eine Schriftart, die die Großbuchstaben A-Z unterstützt und deren Zeichen jeweils 32 x 32 Pixel groß sind, in einem Pinsel angeordnet werden, der 4 Reihen mit 8 Zeichen pro Reihe hat, mit Ausnahme der letzten Reihe, die nur 2 enthält, weil das englische Alphabet nur 26 Zeichen hat, also reichen 3 Zeilen mit 8 Zeichen plus eine letzte Zeile mit 2 Zeichen. Sie könnten also eine solche Schriftart aus einem 256x128 großen Pinsel erstellen und 32 für width und height, 8 für cols und "ABCDEFGHIJKLMNOPQRSTUVWXYZ" in Charmap übergeben.

Das optionale Tabellenargument kann verwendet werden, um einige zusätzliche Optionen festzulegen. Die folgenden Tags werden derzeit erkannt:

Name:
Auf diese Weise können Sie Ihrer Schriftart einen Namen geben. Standardmäßig wird der Name der Schriftart auf "Font" gesetzt.

RowSpacing:
Wenn es einen gewissen Abstand zwischen den verschiedenen Zeichenreihen im Pinsel gibt, können Sie dies CreateFont() mit diesem Tag mitteilen. Setzen Sie diesen Tag einfach auf die Anzahl der Abstandspixel zwischen jeder Zeile und CreateFont() überspringt den Abstand, wenn es eine Schriftart erstellt. Der Standardwert ist 0, was bedeutet, dass kein vertikaler Abstand vorhanden ist.

ColSpacing:
Wenn zwischen den einzelnen Zeichen im Pinsel etwas Abstand ist, können Sie dies CreateFont() mit diesem Tag mitteilen. Setzen Sie diesen Tag einfach auf die Anzahl der Abstandspixel zwischen jedem Zeichen und CreateFont() überspringt den Abstand, wenn er eine Schriftart erstellt. Der Standardwert ist 0, was bedeutet, dass kein horizontaler Abstand vorhanden ist.

Ascender:
Mit diesem Tag können Sie die gewünschte Oberlänge für die Schriftart festlegen. Die Oberlänge einer Schriftart ist der maximale Zeichenumfang von der Grundlinie bis zum oberen Rand der Zeile. Hollywood verwendet den Oberlängenwert, um beispielsweise zu bestimmen, wo die Linie für den Textstil der Unterstreichung gezeichnet werden soll. Dies ist standardmäßig die in height übergebene Zeichenhöhe minus 1.

CreateFont() unterstützt sowohl Palettenpinsel als auch Pinsel mit Maske oder Alphakanal. Wenn der in brushid übergebene Pinsel ein 1-Bit-Palettenpinsel ist, können Sie auch die Farbe der Schriftart mit SetFontColor() und anderen Befehlen ändern, genau wie Sie es für normale Schriftarten tun können. Wenn die Pinseltiefe jedoch mehr als 1 Bit beträgt, wird die Schriftart als Farbschrift behandelt, die immer dieselbe Farbe verwendet, unabhängig davon, wie die aktuelle Schriftfarbe eingestellt ist.

Beachten Sie, dass CreateFont() ziemlich flexibel ist und auch als Kachelkarte verwendet werden könnte. Ordnen Sie einfach jede Kachel einem Zeichen zu und zeichnen Sie dann die gesamte Kachelkarte mit einem einzigen Aufruf von TextOut(). Dies sollte viel schneller sein, als die Kacheln einzeln zu zeichnen.

Eingaben
id
Identifikator für die Schriftart oder Nil für automatische ID-Auswahl
brushid
Identifikator des Quellpinsels
charmap
Zeichenkette, die alle Zeichen im Pinsel beschreibt
width
Breite jedes Schriftzeichens
height
Höhe jedes Schriftzeichens
cols
Anzahl Zeichen pro Zeile
t
optional: Tabelle mit weiteren Optionen (siehe oben)
Rückgabewerte
id
optional: Identifikator der Schriftart; wird nur zurück gegeben wenn Sie Nil als Argument 1 übergeben (siehe oben)
Beispiel
CreateFont(1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!-.:?",30,32,10)
UseFont(1)
NPrint("HELLO WORLD!")
Der obige Code erstellt eine neue Schriftart aus Pinsel 2. Es gibt 41 Zeichen im Quellpinsel und sie sind als 10 Zeichen pro Zeile und jeweils 30 x 32 Pixel angelegt. Das bedeutet, dass der Quellpinsel mindestens 300 x 160 Pixel groß sein muss. Nach dem Erstellen der Schriftart wird diese als aktuelle ausgewählt und der Text "HELLO WORLD!" wird ausgegeben.

Navigation zeigen