Skripte, Variablen und Funktionen in GameMaker: Studio

GameMaker: Studio und der IDE, die es uns zur Verfügung stellt, können wir Videospiele schnell und einfach erstellen, was uns eine freundliche und klare Benutzeroberfläche bietet, die uns auch Werkzeuge zur Verfügung stellt, die uns bei der Entwicklung unserer Spiele helfen.

Eines dieser Tools ist GML oder GameMaker-Sprache, das die Funktionalität unserer Umgebung noch weiter erweitert und es uns ermöglicht, durch Skripte unseren eigenen Code für das Projekt zu schreiben, den wir zusammen mit den restlichen Elementen für die Entwicklung unserer Anwendungen verwenden werden.

Skripte erstellen
Bevor wir ein paar Zeilen Code nehmen, werfen wir einen Blick auf die Sites, auf denen unsere Skripte vorhanden sind, und geben uns einen Überblick darüber, was wir je nach Situation mit ihnen tun können.

Scripting innerhalb eines Events


Innerhalb eines Objekts gibt es damit verbundene Ereignisse, wobei diese Ereignisse ein Skript oder eine Aktion enthalten können, die eines davon aufruft. Dies ist das einzige Mal, dass die Drag-and-Drop-Funktionalität für die Skripte verwendet wird.

Zu Skript hinzufügen zu einem Ereignis müssen wir zuerst ein Objekt aus unserem Ressourcenmenü erstellen und wenn es einmal erstellt wurde, verwenden wir die Schaltfläche Ereignis hinzufügen um es zu erstellen:

VERGRÖSSERN

Nach dieser Aktion gehen wir zu unserem Tab Steuerung und in der Sektion Code, ziehen wir das erste Symbol, das wie ein Blatt Papier aussieht, auf das Aktionen und wir werden es veröffentlichen, diese Aktion erstellt unser Skript und wir können mit dem Schreiben unserer Codezeilen beginnen:

VERGRÖSSERN

Skripte als Ressourcen erstellen


Um ein Skript als Ressource zu erstellen, gehen wir zu unserem Ressourcenmenü und wählen Skript erstellen, wo das Skript nach der Erstellung im Ressourcenbaum unter dem entsprechenden Abschnitt angezeigt wird:

VERGRÖSSERN

Wir haben mehrere Möglichkeiten, ein Skript zu erstellen, und jede davon hat ihre Vorteile. Im Falle eines Skripts als Ressource sind die folgenden Bedingungen am nützlichsten:

  • Wenn viele Objekte die Funktionalität nutzen
  • Wenn eine Funktion mehrere Dateneingaben oder Argumente erfordert.
  • Wenn globale Aktionen wie Laden und Speichern verwendet werden.
  • Bei der Implementierung komplexer Logik oder Algorithmen.

Skripte in Räumen


Das Räume oder Räume sind, wo bestimmte Ressourcen platziert werden und in denen das Spiel gespielt wird. Diese Ressourcen können wie alle anderen aus dem entsprechenden Menü mit erstellt werden Platz schaffen:

VERGRÖSSERN

Diese Räume oder Räume können auch Skripte enthalten. Wenn wir einen Raum bearbeiten, gehen wir in den Eigenschaften des Raums auf die Registerkarte Einstellungen und dort sollten wir die Schaltfläche sehen Codeerstellung:

Durch Drücken dieser Schaltfläche wird ein leeres Skript erstellt, das diesem Raum zugeordnet ist und ausgeführt wird, sobald ein Spieler den Raum lädt, bevor ein Objekt sein eigenes Ereignis auslöst.

GML-Skripte
Sobald wir wissen, wo wir unsere erstellen können Skripte und welchen Ressourcen wir sie zuordnen müssen, ist es an der Zeit, die Teile zu kennen, aus denen unsere Skripte bestehen, und die Konzepte, die wir beherrschen müssen, mal sehen.

Programme


Ein Programm in GML ist eine Reihe von Anweisungen, die einer bestimmten Reihenfolge folgen, wobei wir sagen können, dass jedes Skript innerhalb von GML ist ein Programm, bei dem diese Programme normalerweise mit geschweiften Klammern geschlossen werden, sehen wir uns ein Beispiel an:
 {str_text = "Hallo Welt"; x + = 10; if (x> 200) {str_text = "Hallo Solvetic"; }}
Wie wir sehen, ist es ein einfaches Programm, bei dem wir die Instanz einer Variablen vom Typ string erstellen und dann definieren, dass jeder Frame oder 10 Einheiten hinzugefügt werden x und schließlich eine Bedingung, dass, wenn x größer als 200 ist, die Zuweisung erneut durchgeführt wird.

Es ist wichtig zu erwähnen, dass das Semikolon nicht erforderlich ist, jedoch für GML Es wird empfohlen, es zu verwenden, um das Lesen des Codes zu verbessern. Es ist auch ratsam, keine Großbuchstaben zu verwenden und, wenn eine Variable aus zwei Wörtern besteht, den Unterstrich zu verwenden.

Variablen
Die Variablen in GML Sie sind diejenigen, die es uns ermöglichen, Werte darzustellen, und im Gegensatz zu den anderen Programmiersprachen sind sie nicht streng von einem Typ, dh sie müssen keine bestimmte Datenstruktur darstellen. Diese Variablen können jedoch einen dieser beiden Typen darstellen:

  • Eine reelle Zahl kann 200 oder 5.356 sein. Diese ganzen Zahlen können auch einer bestimmten Instanz eines Objekts, Raums, Skripts oder einer anderen Art von Ressource entsprechen.
  • Eine Zeichenfolge, die eine Sammlung von alphanumerischen Zeichen darstellt, die regelmäßig zum Anzeigen von Text verwendet werden, z. B. "Hello World".

Variable Präfixe


Wie oben erwähnt, können Variablen jeder Art von Daten entsprechen, sogar jeder Art von Ressourcen, aber um dieses Problem zu lösen, haben wir die Präfixe für die Variablen, die es uns ermöglichen, den darin enthaltenen Datentyp zu identifizieren. Dies ist nicht zwingend erforderlich, aber es ist eine Konvention, um in GML besser arbeiten zu können, zum Beispiel wenn wir str_player_name Wir wissen bereits, dass es sich um eine Zeichenfolge handelt. Sehen wir uns die Präfixe an, die wir verwenden können:
  • str: String
  • spr: Sprites
  • snd: Klingt
  • bg: Hintergründe
  • pth: Routen
  • scr: Skripte
  • fnt: Schriftarten
  • tml: Zeitleiste
  • obj: Objekt
  • rm: Raum
  • ps: Partikelsystem
  • zB: Partikelemitter
  • pt: Art der Partikel
  • ev: Ereignis

Umfang der Variablen


Innerhalb unserer Skripte haben die Variablen unterschiedliche Gültigkeitsbereiche, was bedeutet, dass die Art und Weise, wie wir auf die Variablen zugreifen und die Werte setzen können, variieren kann. Sehen wir uns die verschiedenen Bereiche an, die wir haben:

Beispiel


Diese Variablen sind für die Instanz oder Kopien jedes Objekts eindeutig. Sie können selbst und von anderen Objekten aufgerufen und eingestellt werden, was in GML am häufigsten vorkommt.

lokal


Dies sind diejenigen, die nur innerhalb einer Funktion oder eines Skripts existieren, sie werden mit dem reservierten Wort deklariert var und sie können nur in den Skripten aufgerufen werden, in denen sie definiert sind.

Global


Auf eine globale Variable kann von jedem Objekt über ein Skript zugegriffen werden, sie gehört zum Spiel und nicht zur einzelnen Instanz der Objektinstanz.

Konstanten


Konstanten sind Variablen, deren Werte nur gelesen und nicht verändert werden können, sie können global oder sogar Instanz sein.

Da wir die unterschiedlichen Arten von Gültigkeitsbereichen der Variablen kennen, sehen wir uns ein kleines Beispiel an, wie wir die Zuweisung nach dem Gültigkeitsbereich durchführen:

 // Fall 1 var a = 1; // Fall 2 Globalvar b; b = 2; // Fall 3 global.c = 10; // Fall 4 self.x = 10; // Fall 5 y = 10;
Für den ersten Fall haben wir a lokale Variable, dies ist leicht durch die Verwendung des reservierten Wortes zu erkennen var. Im zweiten Fall haben wir die Deklaration von a Globale Variable und deine Aufgabe. Für Fall 3 ist dies eine alternative Möglichkeit, a . zu deklarieren und zuzuweisen Globale Variable und schließlich für den Fall 4 und 5 sind Instanzvariablen aber einer von ihnen durch selbst und der andere nicht.

Sprachvariablen


Schließlich haben wir zum Thema Variablen einige globale und Instanzvariablen, die von . bereitgestellt werden GameMaker: Studio für jedes Objekt, wie z x, Sprite oder Index um einige zu nennen. Aber es gibt die Sprachvariablen, die auch global sind wie die Gesundheit oder Gesundheit, Punktzahl oder punkten und Leben oder lebt. Die Verwendung dieser Variablen hängt von jedem Entwickler ab, so dass wir uns entscheiden können, auf sie zu verzichten, aber diese Namen machen es viel einfacher, sie sich zu merken und in unseren Programmen anzuwenden.

Merkmale
EIN Funktion in GML handelt es sich um eine Funktionalität, mit der Sie ein Programm ausführen können. Sie kann standardmäßig in der Sprache bereitgestellt oder als Skript-Ressource erstellt werden.

Diese Funktionen können eine Aktion ausführen, wie z. B. die Ausrichtung einer Schriftart während des Zeichenereignisses ändern, einen Wert zurückgeben oder beides tun, wobei diesen Funktionen Klammern und gegebenenfalls bestimmte Argumente für ihre Operation folgen müssen. Sehen wir uns einige Codezeilen an, um das Verhalten einiger Funktionen zu sehen:

 // Fall 1 draw_self (); // Fall 2 draw_arrow (0,0,100,100,2); // Fall 3 random_value = random (10, 23);
Für Fall Nr. 1 haben wir eine einfache Funktion, die eine Instanz zeichnet, Fall Nr. 2 ist eine Funktion, die eine Aktion ausführt und Argumente benötigt, um zu funktionieren, schließlich haben wir eine Funktion, die eine Aktion ausführt, die einen zufälligen Wert erhalten und zurückgeben soll es zu einer Variablen.

Es gibt einen Sonderfall, der ist script_execute, eine Funktion, die es uns ermöglicht, auf die als Ressourcen erstellten Skripte zuzugreifen, und die Besonderheit besteht darin, dass wir die Variablen unseres Skripts verwenden und dann ausführen können:

 self.script = scr_script_recourse; script_execute (self.script, "Argument", obj_button, 0.12, false);
Wie können wir das Spektrum von sehen? GameMaker: Studio weit über seine Schnittstelle hinausgeht, verfügen wir über ein mächtiges Werkzeug wie GML, das Entwicklern vertraute Elemente wie Variablen oder Funktionen enthält, und so können wir unser Entwicklungswissen in die Entwicklung unserer Projekte und Spiele einbringen.

wave wave wave wave wave