2.1.2. LINE_HEIGHT
Wie der Name schon sagt, beschreibt dieser Integer-Wert die Zeilenhöhe der Beschreibungen in Pixeln. Je höher dieser Wert ist, desto größer ist der Zeilenabstand.
2.1.6. STYLES
Ein besonderes Schmankerl der HTML-Rendering-Engine sind die vordefinierten Styles. Angenommen, alle Questbeschreibungen enthalten Überschriften. Man könnte jetzt für jede Überschrift die entsprechenden Tags setzen, fett, unterstrichen, Schriftgröße, Schriftart, Zeilenabstand etc. Will man jetzt aber alle Überschriften um einen Grad größer machen, hat man ganz schön Probleme, denn man muss für jede Überschrift die Tags ändern. Hier kommt das so genannte Semantische Tagging zum Einsatz: Alle Styles werden an zentraler Stelle definiert und die einzelnen Überschriften werden nur anhand ihrer Semantik bezeichnet, d.h. anhand ihrer Funktion im Dokument (z.B. Überschrift). Im Idealfall enthält das Dokument selbst dann gar keine absoluten Formatierungen mehr. Genau das gleiche Prinzip kommt bei der Gestaltung von Webseiten zum Einsatz, wenn die Formatierungen in Cascading Style Sheets (CSS) definiert werden. Die STYLES- Variable entspricht insofern dem Stylesheet.
Die Variable ist ein Hash. Die Schlüssel entsprechen den Namen der Styles und die Werte enthalten die Informationen zur Formatierung. An der Stelle des senkrechten Striches (|) wird später der getaggte Text eingefügt.
Beispiel: Ein Style enthält Informationen zur Formatierung von Überschriften. Wir verwenden die Schriftgröße 45, die Schriftart Cambria, stellen den Text fett dar und lassen einen Zeilenabstand von 40 Pixeln zur nächsten Zeile. Der Style sieht demnach wie folgt aus:
<size=45><font=Cambria><b>|</b></font></size><down=40>
Die einzelnen Tags werden unten genauer beschrieben.
2.2. Tags
Generell sind die Tags HTML nachempfunden, dennoch sind selbstverständlich nicht alle HTML- Tags im Questlog verwendbar und umgekehrt existieren nicht alle Questlog-Tags auch in HTML. Die Tags sind außerdem nicht XML-konform, d.h. es gibt auch Tags die nicht geschlossen werden. Schande über mein Haupt, aber was soll's ;-)
Leider habe ich es nicht hinbekommen, zentrierte und rechtsbündige Ausrichtung zu implementieren; außerdem ist es zuweilen etwas mühselig, die richtigen Stellen der Zeilenumbrüche herauszufinden, da hilft meist nur Ausprobieren.
Questtitel kann man übrigens mit Formatierungen gut kategorisieren, beispielsweise in Haupt- und Nebenquests. Und die Einbindung von Variablen, der If-Tag und die Code-Evaluation ermöglichen in der Questbeschreibung eine (dynamisch erzeugte) Übersicht über den Fortschritt des Quests, wie auch auf den Demoscreens zu sehen ist.
Es existieren die folgenden Tags:
- <br>
- <b>Text</b>
- <i>Text</i>
- <u>Text</u>
- <color=X>Text</color>
- <size=X>Text</size>
- <small>Text</small>
- <big>Text</big>
- <font=X>Text</font>
- <shadow>Text</shadow>
- <icon=X>
- <image=X>
- <line>
- <down=X>
- <space=X>
- <if=X>Text<else>Anderer Text</if>
- <var=X>
- <eval={X}>
- <style=X>Text</style>
2.2.1. <br>
Zeilenumbruch
2.2.2. <b>Text</b>
Fetter Text
2.2.3. <i>Text</i>
Kursiver Text
2.2.4. <u>Text</u>
Unterstrichener Text
2.2.5. <color=X>Text</color>
Farbiger Text
Für X muss einer der folgenden Parameter eingesetzt werden:
a) Ein Farbcode in Hexadezimalschreibweise mit vorangestelltem #, z.B. #ffffff = weiß. Die gleichen Farbcodes können in HTML bzw. CSS verwendet werden, daher gibt es im Internet viele Farbtabellen für diese Hexcodes.
b) Ein Farbwort, dabei sind folgende möglich: normal_color (weiß), system_color (blau), disabled_color (grau), crisis_color (gelb), knockout_color (rot), white, black, red, green, blue, yellow, cyan, magenta, light_gray, gray, dark_gray, pink, orange.
c) Ein Message-Farbcode, der auch beim Messagecode \c[X] verwendet wird, also eine Zahl von 0-7.
2.2.6 <size=X>Text</size>
Der Text wird in der angegebenen Schriftgröße dargestellt.
2.2.7. <small>Text</small>
Kleinerer Text
2.2.8. <big>Text</big>
Größerer Text
2.2.9. <font=X>Text</font>
Der Text wird in der angegebenen Schriftart dargestellt.
2.2.10. <shadow>Text</shadow>
Der Text wirft einen Schatten. 2.2.11.
<icon=X>
Ein Icon wird (innerhalb der Zeile) gezeichnet. Für X ist der Name des (importierten) Icons einzusetzen.
2.2.12. <image=X>
Ein Bild wird zentriert in einer neuen Zeile gezeichnet. Für X ist der Name des (importierten) Bildes einzusetzen.
2.2.13. <line>
Zeichnet eine Trennlinie, entspricht <hr> aus HTML.
2.2.14. <down=X>
Wie Zeilenumbruch, aber Zeilenabstand ist einstellbar. Für X ist der vertikale Versatz in Pixeln einzusetzen.
2.2.15. <space=X>
Lässt eine (horizontale) Lücke von X Pixeln. Z.B. für Einrückung am Zeilenanfang zu gebrauchen.
2.2.16. <if=X>Text<else>Anderer Text</if>
Schalterabhängiger Text. Für X ist die ID eines Switches einzusetzen. Wenn der Switch an ist, wird „Text“ dargestellt, ansonsten der „Andere Text“.
2.2.17. <var=X>
Wert der Variable mit der ID X.
2.2.18. <eval={X}>
Hiermit kann beliebiger RGSS-Code eingebettet werden, der erst zum Zeitpunkt der Darstellung evaluiert wird. Die Tags <if> und <var> sind im Grunde nur Spezialformen dieser dynamischen Inhaltserzeugung. Mit dem Eval-Tag können so spezielle Variablen wie Heldennamen, Statuswerte und Systemvariablen eingebunden werden.
2.2.19. <style=X>Text</style>
Eines der wichtigsten Tags: das Style-Tag. Wie schon bei den Parametern beschrieben, werden die konkreten Formatierungen idealerweise zentral (bei den Parametern) definiert und die Dokumente semantisch getaggt. Dieses Semantische Tagging geschieht durch den Style-Tag. Für X ist der Name des Styles einzusetzen, der natürlich im Styles-Parameter definiert sein muss.