GameMaker: Studio og den IDE, den giver os, kan vi bygge videospil hurtigt og nemt, hvilket giver os en venlig og overskuelig grænseflade, der også giver os værktøjer, der hjælper os med at udvikle vores spil.
Et af disse værktøjer er GML eller GameMaker sprog, som udvider funktionaliteten i vores miljø meget mere og giver os mulighed for gennem scripts at skrive vores egen kode til projektet, som vi vil bruge sammen med resten af elementerne til udvikling af vores applikationer.
Oprettelse af scripts
Inden vi tager et par linjer kode, tager vi et kig på de steder, hvor vores scripts er til stede, og giver os et overblik over, hvad vi kan gøre med dem afhængigt af situationen.
Scripting inden for en begivenhed
Inden for et objekt er der hændelser forbundet med det, hvor disse begivenheder kan indeholde et script eller indeholde en handling, der kalder en af disse. Dette vil være den eneste gang, hvor træk og slip -funktionaliteten vil blive brugt til scripts.
Til tilføj et script til en begivenhed skal vi først oprette et objekt fra vores ressourcemenu, og når vi har oprettet det, bruger vi knappen tilføj begivenhed for at oprette det:
FORSTØRRE
Efter denne handling går vi til vores fane styring og i afsnittet Kode, vi kommer til at trække det første ikon, der ligner et ark papir, til Handlinger og vi frigiver, denne handling opretter vores script, og vi kan begynde at skrive vores kodelinjer:
FORSTØRRE
Oprettelse af scripts som ressourcer
For at oprette et script som en ressource, går vi til vores ressourcemenu og vælger Opret script, hvor scriptet først er oprettet, vil det blive vist i ressourcetræet under den tilsvarende sektion:
FORSTØRRE
Vi har flere måder at oprette et script på, og hver af disse har sine fordele, i tilfælde af et script som en ressource er følgende betingelser de mest nyttige:
- Når mange objekter bruger funktionaliteten
- Når en funktion kræver flere datainput eller argumenter.
- Når globale handlinger som indlæsning og gemning bruges.
- Ved implementering af kompleks logik eller algoritmer.
Scripts i lokaler
Det værelser eller lokaler er, hvor specifikke ressourcer er placeret, og hvor spillet spilles. Disse ressourcer kan oprettes som alle andre fra den tilsvarende menu med Opret værelse:
FORSTØRRE
Disse rum eller rum kan også indeholde scripts, for når vi redigerer et værelse, går vi til fanen Indstillinger inden for rummets egenskaber, og der skal vi se knappen Oprettelse af kode:
Hvis du trykker på denne knap, oprettes et tomt script, der er knyttet til det rum, der udføres, når en spiller har indlæst rummet, dette før et objekt udløser sin egen begivenhed.
GML -scripts
Når vi ved, hvor vi kan skabe vores scripts og til hvilke ressourcer der skal knyttes dem, er det tid til at kende de dele, der udgør vores scripts og de begreber, vi skal mestre, lad os se.
Programmer
Et program i GML er en række instruktioner, der følger en bestemt rækkefølge, hvor vi kan sige, at ethvert script inden for GML er et program, hvor disse programmer normalt lukkes med seler, lad os se et eksempel:
{str_text = "Hej verden"; x + = 10; hvis (x> 200) {str_text = "Hej Solvetic"; }}Som vi kan se, er det et simpelt program, hvor vi laver forekomsten af en variabel af typestrengen, så definerer vi, at hver ramme eller 10 enheder tilføjes til x og endelig en betingelse om, at hvis x er større end 200, udføres tildelingen igen.
Det er vigtigt at nævne, at semikolon ikke er nødvendigt, dog for GML det anbefales at bruge det til at forbedre læsningen af koden. Det er også tilrådeligt ikke at bruge store bogstaver, og at hvis en variabel består af to ord, skal du bruge understregningen.
Variabler
Variablerne i GML Det er dem, der giver os mulighed for at repræsentere værdier, og i modsætning til resten af nogle programmeringssprog er de ikke strengt af én type, det vil sige, at de ikke behøver at repræsentere en specifik datastruktur. Disse variabler kan imidlertid repræsentere en af disse to typer:
- Et reelt tal kan være 200 eller 5.356. Disse heltal kan også svare til en bestemt forekomst af et objekt, et rum, et script eller en anden type ressource.
- En streng, der repræsenterer en samling af alfanumeriske tegn, der regelmæssigt bruges til at vise tekst, f.eks .: "Hej verden."
Variable præfikser
Som nævnt ovenfor kan variabler svare til enhver form for data, endda enhver form for ressourcer, men for at løse dette problem har vi præfikser til variablerne, som giver os mulighed for at identificere typen af data indeholdt i den. Dette er ikke obligatorisk, men det er en konvention for at kunne fungere bedre i GML, for eksempel hvis vi har str_player_name Vi ved allerede, at det er en streng, lad os se de præfikser, vi kan bruge:
- str: streng
- spr: Sprites
- snd: Lyder
- bg: Baggrunde
- pth: Ruter
- scr: Scripts
- fnt: skrifttyper
- tml: Tidslinje
- obj: Objekt
- rm: Værelse
- ps: Partikelsystem
- f.eks .: Partikelemitter
- pt: Partikeltype
- ev: Begivenhed
Variablenes omfang
Inden for vores scripts har variablerne forskellige anvendelsesområder, hvilket betyder, at den måde, hvorpå vi kan få adgang til variablerne og indstille værdierne, kan variere. Lad os se de forskellige anvendelsesområder, vi har:
Forekomst
Disse variabler er unikke for forekomsten eller kopierne af hvert objekt. De kan tilgås og indstilles af dem selv og af andre objekter, idet de er de mest almindelige inden for GML.
lokal
Disse er dem, der kun findes inden for en funktion eller et script, de erklæres ved hjælp af det reserverede ord var og de kan kun tilgås i de scripts, hvor de er defineret.
Global
En variabel, der er global, kan tilgås af ethvert objekt via et script, den tilhører spillet og ikke den enkelte forekomst af objektforekomsten.
Konstanter
Konstanter er variabler, hvis værdier kun kan læses og ikke ændres, de kan være globale eller endda forekomst.
Da vi kender variablernes forskellige typer af omfang, lad os se et lille eksempel på, hvordan vi udfører opgaven i henhold til omfanget:
// case 1 var a = 1; // case 2 globalvar b; b = 2; // case 3 global.c = 10; // case 4 self.x = 10; // sag 5 y = 10;For det første tilfælde har vi en lokal variabel, kan dette let identificeres ved brug af det reserverede ord var. I det andet tilfælde har vi erklæringen om a global variabel og din opgave. I tilfælde 3 er det en alternativ måde at erklære og tildele en global variabel og endelig for sagen 4 og 5 er instansvariabler men en af dem igennem selv og det gør den anden ikke.
Sprogvariabler
Endelig har vi med hensyn til variabler nogle globale og instansvariabler, der leveres af GameMaker: Studio for hvert objekt, f.eks x, sprite eller indeks for at nævne nogle få. Men der er sprogvariablerne, der også er globale sundhed eller sundhed, score eller score og liv eller lever. Brugen af disse variabler afhænger af hver udvikler, så vi kan beslutte at undvære dem, men disse navne gør dem meget lettere at huske og anvende i vores programmer.
Funktioner
EN fungere i GML er det en funktionalitet, der giver dig mulighed for at køre et program, det kan komme som standard på sproget, eller det kan oprettes som en script-type ressource.
Disse funktioner kan udføre en handling som f.eks. At ændre tilpasningen af en skrifttype under tegnehændelsen, returnere en værdi eller udføre begge dele, hvor disse funktioner skal følges af parenteser og om nødvendigt visse argumenter for deres funktion. Lad os se på et par kodelinjer for at se adfærden for nogle funktioner:
// sag 1 draw_self (); // case 2 draw_arrow (0,0,100,100,2); // case 3 random_value = random (10, 23);For sag nummer 1 har vi en simpel funktion, der tegner en forekomst, sag nummer 2 er en funktion, der udfører en handling, og det kræver argumenter for at fungere, endelig har vi en funktion, der udfører en handling, som er at opnå en tilfældig værdi og returnere det til en variabel.
Der er et særligt tilfælde script_execute, som er en funktion, der giver os adgang til scripts, der er oprettet som ressourcer, og det særegne er, at det giver os mulighed for at bruge variablerne i vores script og derefter udføre det:
self.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0.12, false);Hvordan kan vi se spektret af GameMaker: Studio rækker langt ud over dets grænseflade, har vi et kraftfuldt værktøj som GML, som har elementer, der er velkendte for udviklere, såsom variabler eller funktioner, og herigennem kan vi anvende vores udviklingskendskab til udviklingen af vores projekter og spil.