• 2Minuten
blank

In meiner kleinen Demo “NO RUST” gibt es eine Stelle, in der oben und unten Balken erscheinen. Dieses Sprite wird in vier Schritten eingeblendet. Hierfür könnte man vier einzelne Sprites verwenden, aber es gibt eine wesentlich bessere Option.

Worum es geht

Schau dir diese Demo an:

Bei Minute 2:50 werden oben und unten schwarze Balken generiert und daraufhin ein Sprite in vier Schritten eingeblendet. Dass das Timing perfekt zur Musik passt, ist eine andere Geschichte. Hier soll es lediglich darum gehen, wie man nur einen Teilbereich eines Sprites anzeigt.

draw_sprite_part

Neben den üblichen draw_sprite-Funktionen gibt es in GameMaker Studio mit draw_sprite_part bzw. draw_sprite_part_ext die Möglichkeit, einen Teil eines Sprites anzuzeigen. Damit lassen sich allerlei tolle Dinge anstellen. Und bevor du fragst: nein, das NO RUST-Logo am Anfang der Demo habe ich nicht so eingeblendet. Das habe ich über einen Shader gelöst.

Den oberen Balken zeichne ich so:

Da ich das Sprite in den folgenden Sekunden mehrfach färbe, nutze ich die draw_sprite_part_ext-Funktion. Die offizielle Dokumentation findest du hier.

Entscheidend in der Demo ist die Stelle part*step. Das Sprite habe ich in “parts” unterteilt. Da es vier Schritte sind und es über die ganze Breite geht, konnte ich es im Create-Event mit part = room_width/4; erstellen. Die Variable step wird anschließend anhand der Musik hochgezählt.

Vorteile

Die Vorteile von draw_sprite_part werden sichtbar, wenn man die Alternativen bedenkt. Entweder wir erstellen vier einzelne Sprites oder wir unterteilen das große Sprite in vier Sektionen. Es in vier Sprites wie einen Ladebalken zu unterteilen hat den Nachteil, dass wir mehr Speicherplatz brauchen. Es manuell in vier Segmente zu unterteilen macht den Code deutlich komplexer, da wir die draw_sprite-Funktion viermal aufrufen, statt es über draw_sprite_part zu regeln.

Außerdem sind wir per Code wesentlich flexibler. Heute sollen es vier Abschnitte sein, morgen vielleicht acht? Bei den Alternativen fummelst du wieder an den Sprites herum, mit der draw_sprite_part-Funktion ist es lediglich ein kurzer Eingriff in den Code. Das wir durch die erweiterte Funktion auch noch färben, skalieren und Alpha anpassen können, macht es noch angenehmer.

Weiterführende Links

Pfade bei unterschiedlichen Bildschirmauflösungen
Loading-Sequenz in GameMaker
Sprites spiegeln
Texte im Kreis „tippen”
Bitmap-Fonts im GameMaker

Autor

Abonnieren
Benachrichtige mich bei
guest

0 Comments
Älteste
Neueste Meistgewählt
Inline Feedbacks
Alle Kommentare anzeigen