• 3Minuten
blank

Es müssen nicht immer Shader-Effekte sein. Mit den Zeichenfunktionen von GameMaker lassen sich nette Effekte erschaffen, die u. a. Ladebildschirme, Menüs und GUI zieren können.

Im folgenden Tutorial wird dieser kleine Effekt programmiert:

Das lässt sich sehr einfach über die Zeichenfunktionen lösen. Im Beispiel sind die Kreise oben und unten, aber mit ein wenig Fleiß kann er beliebig angepasst werden.

Grundsätzlich brauchen wir dazu nur ein eigenes Objekt und darin zwei Events.

Event Create

Wie du sehen kannst, werden am Anfang schon die Anzahl der Kreise, die Größe und die Geschwindigkeit definiert. Dann berechnen wir den Abstand der Kreise zueinander mit der Formel: (room_width - (_circle_size * 2)) / (_circle_count - 1). Diese Formel ist äußerst nützlich, wenn du den Effekt anders verwenden möchtest, wie hier gezeigt.

Dann erstellen wir zwei Arrays für oben und unten. Sie lauten _circles und circles_bottom. Die Formel von circle_spacing_bottom ist identisch zu _circle_spacing. Ich habe das so eingerichtet, falls du den Abstand oben oder nur unten verändern möchtest.

Anschließend füllen wir unsere Arrays mit einer for-Schleife und geben darin die Positionen der Kreise oben und unten an.

Event Draw

Abgesehen von Alpha und Farbe befindet sich alles in einer großen for-Schleife. Hier gehen wir beide Arrays durch, berechnen die neuen Positionen, Größe und zeichnen die Kreise. Theoretisch könnte man auch Rechtecke oder Dreiecke nehmen.

Wichtig ist noch, was passiert, wenn ein Kreis den Bildschirm verlässt. Dann wird er neu gesetzt, etwa so: _circles[i] = _circle_size; wenn er oben rechts die Raumbreite verlässt. Im Beispiel reichen somit 30 Kreise aus, um den Eindruck einer unendlichen Animation zu hinterlassen.

Anwendungsbeispiele

Eingebaut habe ich den Effekt an zwei Stellen meiner kleinen Demo NO RUST:

Aber das Prinzip ließe sich auch als Menü nutzen. Etwa für eine Charakterauswahl, bei der man statt Kreise entsprechende Sprites anzeigt. Allerdings müsste man das Ganze noch erweitern. Etwa, dass die Bewegung stehen bleibt, sobald man mit dem Mauszeiger in den entsprechenden Bereich kommt. Und das der Sprite, auf dem der Mauszeiger liegt, mit 100 % Größe angezeigt wird.

Weiterführende Links

Wechselnde Farbverläufe in GameMaker
Selbstspielendes Breakout
Timing in GameMaker-Projekten
Projekt Snake
Projekt Tic-Tac-Toe – Teil 1

Autor

Abonnieren
Benachrichtige mich bei
guest

0 Comments
Inline Feedbacks
Alle Kommentare anzeigen