GameMaker: Studio og IDE som den gir oss, kan vi bygge videospill raskt og enkelt, noe som gir oss et vennlig og oversiktlig grensesnitt som også gir oss verktøy som hjelper oss med å utvikle spillene våre.
Et av disse verktøyene er GML eller GameMaker språk, som utvider funksjonaliteten til miljøet vårt mye mer og lar oss gjennom skript skrive vår egen kode for prosjektet, som vi vil bruke sammen med resten av elementene for utvikling av applikasjonene våre.
Lag skript
Før vi tar noen få kodelinjer, skal vi ta en titt på nettstedene der skriptene våre er tilstede, og gi oss en oversikt over hva vi kan gjøre med dem, avhengig av situasjonen.
Scripting i en hendelse
Innenfor et objekt er det hendelser knyttet til det, hvor disse hendelsene kan inneholde et skript eller inneholde en handling som kaller en av disse. Dette vil være den eneste gangen dra -og -slipp -funksjonaliteten vil bli brukt for skriptene.
Til legg til et skript til en hendelse må vi først lage et objekt fra ressursmenyen, og når vi har opprettet det bruker vi knappen legge til hendelse for å lage den:
FORSTØRRE
Etter denne handlingen går vi til fanen vår kontroll og i seksjonen Kode, skal vi dra det første ikonet som ser ut som et ark til Handlinger og vi slipper, denne handlingen vil lage skriptet vårt, og vi kan begynne å skrive våre kodelinjer:
FORSTØRRE
Opprette skript som ressurser
For å lage et skript som en ressurs, går vi til ressursmenyen og velger Lag skript, der når skriptet er opprettet, vil det vises i ressurstreet under den tilhørende delen:
FORSTØRRE
Vi har flere måter å lage et skript på, og hver av disse har sine fordeler. Når det gjelder et skript som en ressurs, er følgende betingelser de mest nyttige:
- Når mange objekter bruker funksjonaliteten
- Når en funksjon krever flere datainnganger eller argumenter.
- Når globale handlinger som last og lagre brukes.
- Ved implementering av kompleks logikk eller algoritmer.
Skript i rom
De rom eller rom er der spesifikke ressurser er plassert og hvor spillet spilles. Disse ressursene kan opprettes som alle andre fra den tilhørende menyen med Lag rom:
FORSTØRRE
Disse rommene eller rommene kan også inneholde skript, for dette når vi redigerer et rom, går vi til kategorien Innstillinger i egenskapene til rommet, og der skal vi se knappen Kodeopprettelse:
Ved å trykke på denne knappen opprettes et tomt skript knyttet til det rommet som vil bli utført når en spiller laster rommet, dette før et objekt utløser sin egen hendelse.
GML -skript
Når vi vet hvor vi kan lage vår skript og til hvilke ressurser vi skal knytte dem, er det på tide å kjenne delene som består av skriptene våre og konseptene vi må mestre, la oss se.
Programmer
Et program i GML er en serie instruksjoner som følger en bestemt rekkefølge, der vi kan si at et hvilket som helst skript i GML er et program hvor disse programmene vanligvis lukkes med seler, la oss se et eksempel:
{str_text = "Hei verden"; x + = 10; if (x> 200) {str_text = "Hello Solvetic"; }}Som vi kan se, er det et enkelt program hvor vi lager forekomsten av en variabel av typestrengen, så definerer vi at hver ramme eller 10 enheter legges til x og til slutt en betingelse om at hvis x er større enn 200, utføres oppdraget igjen.
Det er viktig å nevne at semikolon ikke er nødvendig, men for GML det anbefales å bruke den til å forbedre lesingen av koden. Det er også tilrådelig å ikke bruke store bokstaver, og at hvis en variabel vil bestå av to ord, bruker du understrek.
Variabler
Variablene i GML Det er de som lar oss representere verdier, og i motsetning til resten av noen programmeringsspråk er de ikke strengt tatt av en type, det vil si at de ikke trenger å representere en bestemt datastruktur. Disse variablene kan imidlertid representere en av disse to typene:
- Et reelt tall kan være 200 eller 5.356. Disse heltallene kan også svare til en bestemt forekomst av et objekt, rom, skript eller annen type ressurs.
- En streng som representerer en samling alfanumeriske tegn som regelmessig brukes til å vise tekst som: "Hei verden."
Variable prefikser
Som nevnt ovenfor kan variabler svare til alle typer data, til og med alle typer ressurser, men for å løse dette problemet har vi prefikser for variablene, som lar oss identifisere typen data som finnes i den. Dette er ikke obligatorisk, men det er en konvensjon for å kunne jobbe bedre i GML, for eksempel hvis vi har str_player_name Vi vil allerede vite at det er en streng, la oss se prefikser som vi kan bruke:
- str: streng
- spr: Sprites
- snd: Høres ut
- bg: Bakgrunner
- pth: Ruter
- scr: Skript
- fnt: Skrifter
- tml: Tidslinje
- obj: Objekt
- rm: Rom
- ps: Partikkelsystem
- f.eks. partikkelemitter
- pt: Type partikler
- ev: Arrangement
Omfang av variabler
Innen våre skript har variablene forskjellige omfang, noe som betyr at måten vi kan få tilgang til variablene og sette verdiene på kan variere. La oss se de forskjellige omfangene vi har:
Forekomst
Disse variablene er unike for forekomsten eller kopiene av hvert objekt. De kan nås og settes av dem selv og av andre objekter, og er de vanligste innen GML.
lokal
Dette er de som bare eksisterer i en funksjon eller et skript, de deklareres ved hjelp av det reserverte ordet var og de kan bare nås i skriptene de er definert i.
Global
En variabel som er global kan nås av et hvilket som helst objekt gjennom et skript, den tilhører spillet og ikke den enkelte forekomsten av objektforekomsten.
Konstanter
Konstanter er variabler hvis verdier bare kan leses og ikke endres, de kan være globale eller til og med forekomster.
Siden vi kjenner de forskjellige typene av variabler, skal vi se et lite eksempel på hvordan vi utfører oppdraget 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; // sak 5 y = 10;For det første tilfellet har vi en lokal variabel, blir dette lett identifisert ved bruk av det reserverte ordet var. I det andre tilfellet har vi erklæringen om a global variabel og oppgaven din. For sak 3 er det en alternativ måte å erklære og tildele en global variabel og til slutt for saken 4 og 5 er forekomstvariabler men en av dem gjennom selv- og den andre ikke.
Språkvariabler
Til slutt, om temaet variabler har vi noen globale og forekomstvariabler som tilbys av GameMaker: Studio for hvert objekt, for eksempel x, sprite eller indeks for å nevne noen. Men det er språkvariablene som også er globale Helse eller helse, poengsum eller score og bor eller liv. Bruken av disse variablene avhenger av hver utvikler, slik at vi kan bestemme oss for å undvære dem, men disse navnene gjør dem mye lettere å huske og bruke i programmene våre.
Funksjoner
EN funksjon i GML er det en funksjonalitet som lar deg kjøre et program, det kan komme som standard på språket eller det kan opprettes som en skript-type ressurs.
Disse funksjonene kan utføre en handling som å endre justeringen av en skrift under tegnehendelsen, returnere en verdi eller gjøre begge deler, der disse funksjonene må følges av parenteser og, om nødvendig, visse argumenter for driften. La oss se på noen få kodelinjer for å se oppførselen til noen funksjoner:
// sak 1 draw_self (); // sak 2 draw_arrow (0,0,100,100,2); // case 3 random_value = random (10, 23);For sak nummer 1 har vi en enkel funksjon som tegner en forekomst, sak nummer 2 er en funksjon som utfører en handling og det krever argumenter for å fungere, endelig har vi en funksjon som utfører en handling, som er å oppnå en tilfeldig verdi og returnere det til en variabel.
Det er et spesielt tilfelle script_execute, som er en funksjon som lar oss få tilgang til skriptene som er opprettet som ressurser, og det særegne er at det lar oss bruke variablene i skriptet vårt og deretter utføre det:
self.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0.12, false);Hvordan kan vi se spekteret av GameMaker: Studio strekker seg langt utover grensesnittet, har vi et kraftig verktøy som GML, som har elementer som er kjent for utviklere, for eksempel variabler eller funksjoner, og gjennom dette kan vi bruke vår utviklingskunnskap på utviklingen av våre prosjekter og spill.