GameMaker: Studio und die IDE, mit der wir das Gleiche erreichen, ermöglichen die schnelle und einfache Erstellung von Videospielen. Sie bieten eine benutzerfreundliche und übersichtliche Benutzeroberfläche sowie Tools, die uns bei der Entwicklung unserer Spiele helfen.
Eines dieser Tools ist GML oder GameMaker Language , das die Funktionalität unserer Umgebung erheblich erweitert und es uns ermöglicht, mithilfe von Skripten eigenen Code für das Projekt zu schreiben, den wir zusammen mit den übrigen Elementen für die Entwicklung von verwenden werden unsere anwendungen.
Bevor wir uns mit ein paar Codezeilen befassen, werfen wir einen Blick auf die Sites, an denen unsere Skripte vorhanden sind, und geben uns einen Überblick darüber, was wir je nach Situation mit ihnen tun können.
Erstellen von Skripten innerhalb eines Ereignisses
Mit einem Objekt sind Ereignisse verknüpft, die ein Skript oder eine Aktion enthalten können, die eines dieser Ereignisse aufruft. Dies ist die einzige Gelegenheit, in der die Drag & Drop-Funktion für die Skripte verwendet wird.
Um ein Skript zu einem Ereignis hinzuzufügen, müssen wir zuerst ein Objekt aus unserem Ressourcenmenü erstellen. Sobald wir es erstellt haben, verwenden wir die Schaltfläche Ereignis hinzufügen , um es zu erstellen:
Nach dieser Aktion wechseln wir zur Registerkarte „ Steuerung“ und ziehen im Abschnitt „ Code“ das erste Symbol, das wie ein Blatt Papier aussieht, in das Bedienfeld „ Aktionen “. Mit dieser Aktion erstellen wir unser Skript und können mit dem Schreiben unserer Zeilen beginnen Code:
Skripte als Ressourcen erstellen
Um ein Skript als Ressource zu erstellen, rufen Sie unser Ressourcenmenü auf und wählen Sie “Skript erstellen”. Sobald das Skript erstellt wurde, wird es in der Ressourcenstruktur unter dem entsprechenden Abschnitt angezeigt:
Wir haben verschiedene Möglichkeiten, ein Skript zu erstellen, und jede davon hat ihre Vorteile. Im Fall eines Skripts als Ressource sind die folgenden Bedingungen am nützlichsten:
- Wenn viele Objekte Funktionen verwenden
- Wenn eine Funktion mehrere Dateneinträge oder Argumente benötigt.
- Wenn globale Aktionen wie Laden und Speichern verwendet werden.
- Bei der Implementierung komplexer Logik oder Algorithmen.
Skripte in Räumen
In den Räumen oder Räumen werden bestimmte Ressourcen platziert und das Spiel ausgeführt. Diese Ressourcen können wie alle anderen über das entsprechende Menü mit Raum erstellen erstellt werden :
Diese Räume oder Räume können auch Skripte enthalten. Wenn wir also einen Raum bearbeiten, wechseln wir zur Registerkarte “Einstellungen” in den Eigenschaften des Raums und dort sollte die Schaltfläche ” Codeerstellung” angezeigt werden:
Durch Drücken dieser Schaltfläche wird ein leeres Skript für diesen Raum erstellt, das ausgeführt wird, sobald ein Spieler den Raum lädt, bevor ein Objekt ein eigenes Ereignis auslöst.
Sobald wir wissen, wo wir unsere Skripte erstellen können und mit welchen Ressourcen sie verknüpft werden sollen, ist es an der Zeit, die Teile zu kennen, aus denen unsere Skripte bestehen, und die Konzepte, die wir beherrschen müssen.
Programme
Ein Programm in GML ist eine Reihe von Anweisungen, die einer bestimmten Reihenfolge folgen. Wir können sagen, dass jedes Skript in GML ein Programm ist, bei dem diese Programme normalerweise durch Schlüssel geschlossen werden. Sehen wir uns ein Beispiel an:
{ str_text = "Hallo Welt"; x + = 10; if (x> 200) { str_text = "Hallo TechnoWikis"; } }
Wie wir sehen, ist ein einfaches Programm, in dem wir die Instanz einer Variablen vom Typ string ausführen. Wir definieren dann, dass jeder Frame oder Frame 10 Einheiten zu x hinzugefügt werden, und schließlich die Bedingung, dass die Zuweisung erneut durchgeführt wird, wenn x größer als 200 ist.
Es ist wichtig zu erwähnen, dass das Semikolon nicht erforderlich ist. Für GML wird jedoch empfohlen, es zu verwenden, um das Lesen des Codes zu verbessern. Es ist auch ratsam, keine Großbuchstaben zu verwenden. Wenn eine Variable aus zwei Wörtern besteht, verwenden Sie den Unterstrich.
Bei den Variablen in GML handelt es sich um Variablen, mit denen Werte dargestellt werden können. Im Gegensatz zu einigen anderen Programmiersprachen handelt es sich bei ihnen nicht ausschließlich um einen 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 Ganzzahlen können auch einer bestimmten Instanz eines Objekts, Raums, Skripts oder einer anderen Art von Ressource entsprechen.
- Eine Zeichenfolge, die eine Sammlung alphanumerischer Zeichen darstellt, die regelmäßig zum Anzeigen von Text verwendet werden, z. B. “Hello World”.
Variable Präfixe
Wie oben erwähnt, können die Variablen jedem Datentyp entsprechen, einschließlich aller Arten von Ressourcen. Um dieses Problem zu lösen, haben wir die Präfixe für die Variablen, mit denen wir den darin enthaltenen Datentyp identifizieren können. Dies ist nicht obligatorisch, aber es ist eine Konvention, um in GML besser zu funktionieren. Wenn wir beispielsweise str_nombre_jugador haben, werden wir wissen, dass es sich um einen String handelt, sehen wir uns die Präfixe an, die wir verwenden können:
- str: String
- spr: Sprites
- snd: klingt
- bg: Fonds
- pth: Routen
- scr: Skripte
- fnt: Schriftarten
- tml: Zeitleiste
- obj: Objekt
- rm: Zimmer
- ps: Partikelsystem
- zB: Teilchenemitter
- 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 festlegen, variieren kann. Schauen wir uns die verschiedenen Bereiche an, mit denen wir arbeiten:
Instanz
Diese Variablen sind für die Instanz oder Kopien jedes Objekts eindeutig. Sie können von sich selbst und von anderen Objekten aufgerufen und festgelegt werden, was in GML am häufigsten vorkommt.
Lokal
Diese existieren nur innerhalb einer Funktion oder eines Skripts, werden mit dem reservierten Wort var deklariert und sind nur in den Skripten zugänglich, 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 geändert werden können. Sie können global oder sogar instanz sein.
Da wir die verschiedenen Arten des Gültigkeitsbereichs der Variablen kennen, sehen wir uns ein kleines Beispiel an, wie wir die Zuweisung gemäß 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 eine lokale Variable , die leicht durch die Verwendung des reservierten Wortes var identifiziert werden kann. Im zweiten Fall haben wir die Deklaration einer globalen Variablen und ihre Zuordnung. Denn Fall 3 ist eine alternative Möglichkeit, die Deklaration und die Zuweisung einer globalen Variablen vorzunehmen, und schließlich sind Fall 4 und 5 Instanzvariablen, aber eine davon durch sich selbst und die andere nicht.
Sprachvariablen
Schließlich haben wir im Thema der Variablen einige globale und Instanzen, die von GameMaker bereitgestellt werden : Studio für jedes Objekt, wie z. B. x, Sprite oder Index, um nur einige zu nennen. Aber es gibt Variablen der Sprache, die auch global sind, wie Gesundheit oder Gesundheit, Punktzahl oder Punktzahl und Leben oder Leben. Die Verwendung dieser Variablen hängt von jedem Entwickler ab, sodass wir entscheiden können, auf sie zu verzichten. Diese Namen erleichtern es jedoch erheblich, sie sich zu merken und in unseren Programmen anzuwenden.
Eine Funktion in GML ist eine Funktion, mit der ein Programm ausgeführt werden kann. Sie kann standardmäßig in der Sprache oder als Ressource vom Typ Skript erstellt werden.
Diese Funktionen können eine Aktion ausführen, z. B. die Ausrichtung einer Schriftart während des Zeichenereignisses ändern, einen Wert zurückgeben oder beide Aktionen ausführen, wobei diesen Funktionen Klammern und gegebenenfalls bestimmte Argumente für ihre Operation folgen müssen. Sehen wir uns ein paar 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 den Fall Nummer 1 haben wir eine einfache Funktion, die eine Instanz zeichnet, Fall Nummer 2 ist eine Funktion, die eine Aktion ausführt, und es sind Argumente erforderlich, um zu funktionieren. Schließlich haben wir eine Funktion, die eine Aktion ausführt, nämlich eine zufälliger Wert und geben Sie ihn an eine Variable zurück.
Es gibt einen speziellen Fall, nämlich script_execute , eine Funktion, mit der wir auf die als Ressourcen erstellten Skripte zugreifen können. Die Besonderheit besteht darin, dass wir die Variablen unseres Skripts verwenden und anschließend ausführen können:
self.script = scr_script_recurso; script_execute (self.script, "argument", obj_button, 0.12, false);
Wie wir sehen können, geht das Spektrum von GameMaker: Studio weit über die Benutzeroberfläche hinaus. Wir verfügen über ein leistungsstarkes Tool wie GML, das vertraute Elemente für Entwickler als Variablen oder Funktionen enthält, mit denen wir dieses Wissen anwenden können der Entwicklung für die Entwicklung unserer Projekte und Spiele.