Skript, variabler och funktioner i GameMaker: Studio

GameMaker: Studio och den IDE som den ger oss kan vi bygga videospel snabbt och enkelt, vilket ger oss ett vänligt och tydligt gränssnitt som också ger oss verktyg som hjälper oss att utveckla våra spel.

Ett av dessa verktyg är GML eller GameMaker -språk, som utökar funktionaliteten i vår miljö mycket mer och gör att vi genom skript kan skriva vår egen kod för projektet, som vi kommer att använda tillsammans med resten av elementen för utvecklingen av våra applikationer.

Skapa skript
Innan vi tar några rader med kod kommer vi att titta på de platser där våra skript finns och ge oss en överblick över vad vi kan göra med dem beroende på situationen.

Skript i en händelse


Inom ett objekt finns händelser associerade med det, där dessa händelser kan innehålla ett skript eller innehålla en åtgärd som kallar en av dessa. Detta är den enda gången där dra och släpp -funktionen kommer att användas för skripten.

Till lägg till ett skript för en händelse måste vi först skapa ett objekt från vår resursmeny och när vi väl skapat använder vi knappen lägg till händelse för att skapa det:

FÖRSTORA

Efter denna åtgärd går vi till vår flik kontrollera och i avsnittet Koda, vi ska dra den första ikonen som ser ut som ett pappersark till Åtgärder och vi släpper, den här åtgärden skapar vårt manus och vi kan börja skriva våra kodrader:

FÖRSTORA

Skapa skript som resurser


För att skapa ett skript som en resurs, går vi till vår resursmeny och väljer Skapa skript, där när skriptet skapats kommer det att visas i resursträdet under motsvarande avsnitt:

FÖRSTORA

Vi har flera sätt att skapa ett skript och var och en av dessa har sina fördelar, när det gäller ett skript som en resurs är följande villkor de mest användbara:

  • När många objekt använder funktionen
  • När en funktion kräver flera datainmatningar eller argument.
  • När globala åtgärder som ladda och spara används.
  • Vid implementering av komplex logik eller algoritmer.

Skript i rum


De rum eller rum är där specifika resurser placeras och där spelet spelas. Dessa resurser kan skapas som alla andra från motsvarande meny med Skapa rum:

FÖRSTORA

Dessa rum eller rum kan också innehålla skript, för detta när vi redigerar ett rum går vi till fliken inställningar inom rummets egenskaper och där ska vi se knappen Kodskapande:

Genom att trycka på den här knappen skapas ett tomt skript som är associerat med det rummet som kommer att köras när en spelare laddar rummet, detta innan något objekt utlöser sin egen händelse.

GML -skript
När vi vet var vi kan skapa vår skript och till vilka resurser att associera dem är det dags att känna till delarna i våra skript och de begrepp som vi måste behärska, låt oss se.

Program


Ett program i GML är en serie instruktioner som följer en specifik ordning, där vi kan säga att alla skript inom GML är ett program där dessa program vanligtvis stängs av hängslen, låt oss se ett exempel:
 {str_text = "Hej världen"; x + = 10; if (x> 200) {str_text = "Hej Solvetic"; }}
Som vi kan se är det ett enkelt program där vi gör förekomsten av en variabel av typsträng, sedan definierar vi att varje ram eller 10 enheter läggs till x och slutligen ett villkor att om x är större än 200 utförs tilldelningen igen.

Det är viktigt att nämna att semikolon inte är nödvändigt, dock för GML det rekommenderas att använda den för att förbättra läsningen av koden. Det är också lämpligt att inte använda stora bokstäver och att om någon variabel kommer att bestå av två ord, använd understrykningen.

Variabler
Variablerna i GML Det är de som tillåter oss att representera värden, och till skillnad från resten av vissa programmeringsspråk är de inte strikt av en typ, det vill säga att de inte behöver representera en specifik datastruktur. Dessa variabler kan dock representera en av dessa två typer:

  • Ett verkligt tal kan vara 200 eller 5 356. Dessa heltal kan också motsvara en viss förekomst av ett objekt, rum, skript eller annan typ av resurs.
  • En sträng som representerar en samling alfanumeriska tecken som regelbundet används för att visa text som: "Hej världen".

Variabla prefix


Som nämnts ovan kan variabler motsvara vilken typ av data som helst, även vilken typ av resurser som helst, men för att lösa detta problem har vi prefixen för variablerna, som gör att vi kan identifiera vilken typ av data som finns i den. Detta är inte obligatoriskt, men det är en konvention för att kunna fungera bättre i GML, till exempel om vi har str_player_name Vi vet redan att det är en sträng, låt oss se prefixen som vi kan använda:
  • str: Sträng
  • spr: Sprites
  • snd: Låter
  • bg: Bakgrunder
  • pth: Rutter
  • scr: Skript
  • fnt: Teckensnitt
  • tml: Tidslinje
  • obj: Objekt
  • rm: Rum
  • ps: Partikelsystem
  • t.ex.: Partikelemitter
  • pt: Typ av partiklar
  • ev: Händelse

Variablernas omfattning


Inom våra skript har variablerna olika omfattningar, vilket innebär att hur vi kan komma åt variablerna och ställa in värdena kan variera. Låt oss se de olika omfattningarna vi har:

Exempel


Dessa variabler är unika för förekomsten eller kopiorna av varje objekt. De kan nås och ställas in av dem själva och av andra objekt, eftersom de är de vanligaste inom GML.

lokal


Dessa är de som bara finns inom en funktion eller ett skript, de deklareras med hjälp av det reserverade ordet var och de kan endast nås i skripten där de definieras.

Global


En variabel som är global kan nås av alla objekt via ett skript, den tillhör spelet och inte den enskilda förekomsten av objektinstansen.

Konstanter


Konstanter är variabler vars värden bara kan läsas och inte ändras, de kan vara globala eller till och med instanser.

Eftersom vi känner till de olika typerna av variablerna, låt oss se ett litet exempel på hur vi utför uppdraget enligt omfattningen:

 // 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 det första fallet har vi en lokal variabel, detta identifieras lätt genom att använda det reserverade ordet var. I det andra fallet har vi deklarationen a global variabel och ditt uppdrag. För fall 3 är det ett alternativt sätt att deklarera och tilldela en global variabel och slutligen för fallet 4 och 5 är instansvariabler men en av dem genom själv och den andra inte.

Språkvariabler


Slutligen, när det gäller variabler har vi några globala variabler och instansvariabler som tillhandahålls av GameMaker: Studio för varje objekt, t.ex. x, sprite eller index för att nämna några. Men det finns språkvariabler som också är globala hälsa eller hälsa, Göra eller poäng och liv eller liv. Användningen av dessa variabler beror på varje utvecklare så att vi kan välja att klara oss utan dem, men dessa namn gör dem mycket lättare att komma ihåg och tillämpa i våra program.

Funktioner
A fungera i GML är det en funktionalitet som låter dig köra ett program, det kan komma som standard på språket eller det kan skapas som en skript-typ resurs.

Dessa funktioner kan utföra en åtgärd som att ändra inriktningen av ett teckensnitt under ritningshändelsen, returnera ett värde eller göra båda, där dessa funktioner måste följas av parenteser och vid behov vissa argument för deras funktion. Låt oss titta på några koderader för att se hur vissa funktioner fungerar:

 // fall 1 draw_self (); // fall 2 draw_arrow (0,0,100,100,2); // case 3 random_value = random (10, 23);
För fall nummer 1 har vi en enkel funktion som ritar en instans, ärende nummer 2 är en funktion som utför en åtgärd och det kräver argument för att fungera, slutligen har vi en funktion som utför en åtgärd, som är att erhålla ett slumpmässigt värde och returnera det till en variabel.

Det finns ett specialfall script_execute, som är en funktion som tillåter oss att komma åt skript som skapats som resurser, och det säregna är att det tillåter oss att använda variablerna i vårt manus och sedan köra det:

 self.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0.12, false);
Hur kan vi se spektrumet av GameMaker: Studio sträcker sig långt bortom gränssnittet, har vi ett kraftfullt verktyg som GML, som har element som är välkända för utvecklare som variabler eller funktioner, och genom detta kan vi tillämpa vår utvecklingskunskap på utvecklingen av våra projekt och spel.

wave wave wave wave wave