Tooltips in GameMaker

24. Mai 2018

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.

Hinterlasse einen Kommentar

avatar
1024
  Abonnieren  
Benachrichtige mich bei