StartTutorialsGame MakerTooltips in GameMaker

Tooltips in GameMaker

  • 2 Monaten her
  • 2Minuten

Wer kennt das nicht? Selbst ein beschriebenes Steuerelement ist manchmal nicht eindeutig. Manchmal möchte man mehr Informationen anzeigen, als auf den ersten Blick nötig erscheint. In solchen Fällen helfen Tooltips. Mit einem einfachen Skript lassen sie sich in GameMaker realisieren.

Anwendungsbeispiele gibt es genug. Seien es die Settings, in denen man etwas erklären muss, oder Items im Spiel, bei denen man weitere Informationen anzeigen möchte. Der Spieler fährt mit der Maus drüber und nach kurzer Zeit erscheint eine rechteckige Box, die weiterhilft. Um dies in GameMaker möglich zu machen, reicht ein kleines Skript. In diesem Beispiel erkläre ich lediglich das Skript und den entsprechenden Aufruf. Am Ende des Tutorials findet sich eine Datei mit einem konkreten Anwendungsbeispiel. Im Beispiel ist eine Checkbox, mit der man Fenster- und Vollbildmodus hin- und herschalten kann. Wenn man die Maus eine halbe Sekunde über der Checkbox lässt, erscheint der Tipp.

Script draw_tooltip

Für das Script brauchen wir sechs Argumente. Zunächst den eigentlichen Text, anschließend drei Farben. Die Farbe der Box-Umrandung, die Hintergrundfarbe und die Textfarbe. Zuletzt brauchen wir noch die X und Y Position der Box.

Die Größe der Box bestimmen wir mit width und heightstring_width(text) gibt die Breite des Textes in Pixel zurück. Das funktioniert sogar mit Zeilenumbruch. Zu diesem Wert addieren wir noch 16 Pixel hinzu, damit wir etwas Abstand haben. string_height(text) macht das Gleiche mit der Höhe. Hier legen wir noch 8 Pixel drauf.

Anschließend wird das Rechteck mit Rahmen gezeichnet. Wer möchte, kann das Skript an dieser Stelle sogar um einen Schatten erweitern.

Letztlich kommt noch der eigentliche Text. Die Farbe wird gesetzt, dann wird der Text linksbündig und vertikal mittig gesetzt und gezeichnet. Auch hier wäre noch ein Textschatten oder andere Spielereien möglich. Eine Idee wäre, das Skript um ein weiteres Argument zu bereichern um verschiedene Icons anzuzeigen, etwa »Info« oder »Warnung«.

Aufruf des Skripts

Das Skript wird natürlich im Draw-Event aufgerufen. Im Beispiel gibt es noch die Variable timer, die hochgezählt wird, sobald die Maus die Fläche berührt. room_speed/2 entspricht einer halben Sekunde. Die Verzögerung ist wichtig, weil es nervt, wenn die Tipps sofort erscheinen, sobald man mit der Maus (versehentlich?) über die Objekte fährt.

Im Text sehen wir ein #, was einen Zeilenumbruch verursacht. Der Tooltip wird im Beispiel immer rechts oben vom Mauszeiger aus dargestellt. Das bedeutet: Wenn man den Mauszeiger auf der Fläche bewegt, wandert der Tooltip mit.

Das war es auch schon. Solch ein Skript lässt sich natürlich beliebig erweitern. Seien es die beschriebenen Schatten und Icons, oder die Form der Box. Der Kreativität sind keine Grenzen gesetzt.

Nun zum Download mit der praktischen Anwendung:

 

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

Vorheriger ArtikelWebgamers.de überarbeitet
Nächster ArtikelByteGames.de ist zurück
Sven Gramatke//www.gravitationart.com/
Schreibt gelegentlich Artikel. Schwerpunkte sind Gamedesign, Programmierung (GML, PHP und JS), Retro und Berichte.
Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments

NEWS

ByteGame News

Gamedev Podcast 52 – Game Therapy

0
Wer in den letzten 20 Jahren eine deutsche Tagesklinik schon mal von innen gesehen hat, kennt vielleicht Cogpack. Bei Cogpack kann man am PC...
GameJam-Logo von ManaSoup-GameJam (irgendwas mit Pizza)

Manasoup GameJam

0
Die drei-tägige Manasoup GameJam startet am Freitag, den 03.12.2021! Bei dieser deutschsprachigen GameJam der Gamedev-Discord-Community Manasoup-Network (in Kooperation mit Game Dev Podcast und dem Magazin...
ByteGame News

Multiplayer in Godot 4.0

0
Im Godot-Blog gibt es nun einen Beitrag über das neue Multiplayer-Replikationssystem, das für Godot 4.0 entwickelt wird. Darin werden die Konzepte vorgestellt, auf deren...

Echtzeit-Charakteranimationsschulung in der Unreal Engine

0
Animationen sind ein wichtiger Bestandteil jeder Storyline. Neben der Vielzahl von Objekten, die man in der Unreal Engine animieren kann - Charaktere, Objekte, Materialien...
ByteGame News

Rudi ist der beste Spürhund!

0
Bei A Swift's Live 2 - The Journey hat der Hund Rudi eine Schnüffel-Fortbildung genossen und kann nun besser schnüffeln denn je. Als Resultat...
0
Would love your thoughts, please comment.x
()
x