StartTutorialsGame Makerchoose() - Der einfache Zufall

choose() – Der einfache Zufall

  • 9 Monaten her
  • 2Minuten

Über Zufallszahlen und die verschiedenen Möglichkeiten gab es hier bereits einige Tutorials. Doch manchmal existieren Sonderfälle, für die es im GameMaker eine einfache Lösung gibt.

Was ist choose?

Wörtlich übersetzt heißt es “wählen”. Im Kern geht es um nichts anderes. Die Funktion wählt zufällig zwischen vorgegebenen Parametern aus. Die Verwendung ist dabei sehr einfach. Hier ein Beispiel:

Wie immer, wenn wir mit Zufallsgeneratoren im GameMaker arbeiten, brauchen wir randomise(). Wenn wir das nicht starten, erhalten wir beim Spielstart immer den selben Wert.

Anschließend definieren wir eine Variable, in diesem Fall names. Dahinter kommt auch schon die Funktion, in diesem Fall mit fünf weiblichen Namen gefüllt.

Wichtig: Strings werden natürlich in Anführungszeichen geschrieben.

Die Variable kann jetzt beliebig verwendet werden. Sie enthält eine der fünf Namen.

Alternative zu Switch

In vielen Fällen kann man auf Switch verzichten. Vor allem, wenn wir nur einen Parameter haben. Zur Verwendung empfehlen wir choose möglichst nur dann zu benutzen, wenn es wirklich nur einen Parameter gibt oder bewusst mehrere gewürfelt werden sollen. Etwa Namen und Farben. Mehrere Parameter mit einem Zusammenhang sind hingegen zu vermeiden. Hier ist eine Switch deutlich besser. Je nach Komplexität könnte man es auch mit Arrays lösen. Im Array definiert man die Parameter und würfelt die einzelnen Arrays aus. Etwa so:

Und dann im Draw-Event:

Resultat:

adnana

Anwendungsbeispiele

Die GameMaker-Hilfe zeigt bereits die Beispiele Namen, Sprites und Zahlen. Die Farben wurden schon genannt. Beispiel:

In Kombination mit dem ersten Code kann bspw. im Draw-Event “Claudia” in der Farbe Grün angezeigt werden.

Aber zurück zu den Zahlen. Oft hat man den Fall, dass nur aus ganz bestimmten Zahlen gewählt werden soll. Etwa 1, 2, 5 und 8. Hierfür ist choose perfekt.

Objekte kommen ebenfalls in Frage. An einer bestimmten Stelle im Level soll zufällig einer von drei möglichen Gegnern erscheinen? Kein Problem.

Oder dieses Beispiel:

Im Draw-Event ausgegeben sieht es dann so aus:

choose-beispiel

Das heißt, man kann auch das Problem mit längeren, zufälligen Texten, bspw. eines NPCs, damit lösen.

Fazit

In einigen speziellen Fällen ist choose() eine deutliche Erleichterung und bietet viele tolle Anwendungsmöglichkeiten. Einfach mal selbst probieren.

Sven Gramatke
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

Neueste Kommentare

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...
0
Would love your thoughts, please comment.x