Textscroller

  • 12 Monaten her
  • 3Minuten

Dank der Objekt-Basierten Logik in GameMaker ist es sehr einfach, einen klassischen Textscroller zu erschaffen.

Es gibt sehr viele verschiedene Arten, Text über den Bildschirm scrollen zu lassen. Die zwei einfachsten sind der horizontale Scroller, der meist von rechts nach links läuft, und der vertikale Scroller, der zumeist von unten nach oben läuft. Wir erstellen heute in wenigen Schritten einen vertikalen Scroller, den man auch für einen Abspann im Spiel verwenden könnte.

Vorbereitung

textscroller2Wir brauchen einen Raum, am besten mit einem schwarzen Hintergrund und einem Speed von 60.

Als zweites brauchen wir eine Schrift. Nenne sie fnt_textscroller und mach sie nicht zu groß. Bei den meisten Schriften, die Du gerne frei wählen kannst, ist eine Größe zwischen 12 und 18 ganz gut. Wichtig ist, dass Du bei den Zeichen ASCII wählst, damit auch die Umlaute und das scharfe s angezeigt werden.

Nun brauchen wir nur noch ein Objekt, welches wir obj_textscroller nennen. Das kannst Du irgendwo im Raum positionieren. Da wir die Position im Code bestimmen, ist es eigentlich egal, wo das Objekt steht.

obj_textscroller

Im Onjekt brauchen wir drei Events. Im Prinzip würden sogar zwei reichen, aber wir wollen es ordentlich machen und die Draw-Ereignisse von der Steuerung des Objekts trennen.

Event Create

Erst einmal bestimmen wir die Ausgangsposition. Wir wollen einen vertikalen Scroller, der sich von unten nach oben bewegt. Wir setzen ihn auf der x-Achse mittig in den Raum und setzen ihn ganz nach unten. Die 20 Pixel, die wir zugeben, bedeuten, dass der Text auf jeden Fall aus dem Nichts, also von außerhalb des Raums kommt. Wenn Du es noch etwas verzögern willst, setze den Wert einfach hoch, zum Beispiel auf 200.

Hier wird das Prinzip offensichtlich. Unser Text ist ein Objekt, den wir über den Bildschirm bewegen werden. Das ist auch schon der ganze Zauber. Es ist nämlich egal, ob wir einen Sprite oder einen Text über den Bildschirm bewegen. Wenn Du bereits andere Tutorials gemacht hast, wird Dich das auf die Idee bringen, Texte entlang von Pfaden zu bewegen. Auch das kann sehr interessant aussehen.

In die Variable text schreiben wir nun rein, was wir dem Betrachter mitteilen möchten. GameMaker erkennt den Zeilenumbruch automatisch. Man kann diesen auch mit einer Raute, also #, im Text erzeugen, aber je mehr Zeilen der Text hat, umso weniger übersichtlich wird er, wenn man alles in eine Zeile schreibt.

Event Step

Hier bewegen wir das Objekt. Im Prinzip könnte man das auch im Draw-Event machen, aber es ist eleganter, wenn man Funktionalität und Zeichnung trennt. Wenn beides eng miteinander verwoben ist, was hier nicht der Fall ist, kann man auch gewisse Funktionen in den Draw-Event schreiben.

Das war es schon, in der Tat. So wird der Text nach oben gescrollt.

Event Draw

textscrollerErst einmal definieren wir die Schrift und dann eine Farbe. Anschließend zentrieren wir den Text horizontal. Das sieht bei solchen Scrollern einfach besser aus. Bei horizontalen Scrollern kann man, muss man aber nicht, den Text vertikal zentrieren. Das macht man so: draw_set_valign(fa_middle);

In der letzten Zeile wird der Text erzeugt. Da wir den Text im Create-Event definiert haben, genügt uns hier eine Variable.

Das war es auch schon. Du kannst das Programm starten und wirst sehen, wie Dein Text nach oben scrollt.

Änderungen in einen horizontalen Scroller

Du kannst diese Methode auch für horizontale Scroller, wie einem Liveticker, verwenden. Hierbei musst Du erst einmal die Position im Create-Event anpassen. Der Text sollte seitlich außerhalb des Bildschirms beginnen, aber nicht unterhalb des Raums stehen. Außerdem ist es von Vorteil, wenn der Text nur in einer Zeile ist.

Im Step-Event musst Du statt der x die y-Koordinate ändern. Im Draw-Event kannst Du die Zeile für die horizontale Ausrichtung durch die Zeile für die vertikale Ausrichtung ersetzen. Fertig!

 

Hat Dir dieser Artikel gefallen? Dann würden wir uns sehr über Unterstützung freuen.

Sven Gramatke
Sven Gramatke//www.gravitationart.com/
Schreibt gelegentlich Artikel. Schwerpunkte sind Gamedesign, Programmierung (GML, PHP und JS), Retro und Berichte.

1 Kommentar

Abonnieren
Benachrichtige mich bei
guest

1 Kommentar
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

NEWS

PDF

Artikel als PDF

0
Alle ByteGame-Artikel können nun bequem als PDF-Datei heruntergeladen werden. Diese Funktion wurde eingebaut, um vor allem längere Texte ausdrucken oder zumindest offline lesen zu...
Revision 2022

Revision 2022 – Eine Satellitenveranstaltung

0
Wer zu Ostern noch nichts vor hat, sollte über einen Besuch der Revision nachdenken. Diese Demoszene-Party startet am Karfreitag, den 15. April und endet...
news logo 696x400

Revorix Update 1.9

1
Revorix hat ein neues Update bekommen: Patch 1.9 Hauptfeature sind Ressourcen-Events mit der Möglichkeit wechselnde Ressourcen spenden zu können gegen noch zu enthüllende Überraschungen. Außerdem...
news logo 696x400

Godot 3.4.2 veröffentlicht

0
Kurz nach Version 3.4.1 wurde schon 3.4.2 der Spieleengine veröffentlicht. Grund für das schnelle Update war ein Fehler. Bein Rendering unter macOS konnte es...
news logo 696x400

CRYENGINE 5.7 Roadmap enthüllt

0
Nach langer Wartezeit wurde nun die Roadmap für die CRYENGINE 5.7 enthüllt. Crytek räumt dabei interne Schwierigkeiten ein. Intern sind wir bei der Entwicklung auf...
1
0
Would love your thoughts, please comment.x