Scripts, variabelen en functies in GameMaker: Studio

Game Maker: Studio en de IDE die het ons biedt, kunnen we snel en gemakkelijk videogames bouwen, waardoor we een gebruiksvriendelijke en duidelijke interface hebben die ons ook tools biedt die ons helpen onze games te ontwikkelen.

Een van deze tools is: GML of Game Maker-taal, wat de functionaliteit van onze omgeving veel meer uitbreidt en ons in staat stelt via scripts onze eigen code voor het project te schrijven, die we samen met de rest van de elementen zullen gebruiken voor de ontwikkeling van onze applicaties.

Scripts maken
Voordat we verder gaan met het nemen van een paar regels code, gaan we een kijkje nemen op de sites waar onze scripts aanwezig zijn, zodat we een overzicht krijgen van wat we ermee kunnen doen, afhankelijk van de situatie.

Scripting binnen een evenement


Binnen een object zijn er gebeurtenissen aan gekoppeld, waarbij deze gebeurtenissen een script kunnen bevatten of een actie die een van deze aanroept. Dit is de enige keer dat de slepen-en-neerzetten-functionaliteit voor de scripts wordt gebruikt.

Tot voeg een script toe voor een evenement moeten we eerst een object maken vanuit ons bronnenmenu en eenmaal gemaakt gebruiken we de knop Voeg evenement toe om het te maken:

VERGROTEN

Na deze actie gaan we naar onze tab controle en in de sectie Code, gaan we het eerste pictogram dat eruitziet als een vel papier slepen naar de Acties en we zullen vrijgeven, deze actie zal ons script maken en we kunnen beginnen met het schrijven van onze coderegels:

VERGROTEN

Scripts maken als bronnen


Om een ​​script als bron te maken, gaan we naar ons bronmenu en selecteren Script maken, waar zodra het script is gemaakt, het zal verschijnen in de bronnenstructuur onder de overeenkomstige sectie:

VERGROTEN

We hebben verschillende manieren om een ​​script te maken en elk van deze heeft zijn voordelen, in het geval van een script als bron zijn de volgende voorwaarden het handigst:

  • Wanneer veel objecten de functionaliteit gebruiken
  • Wanneer een functie meerdere gegevensinvoer of argumenten vereist.
  • Wanneer globale acties zoals laden en opslaan worden gebruikt.
  • Bij het implementeren van complexe logica of algoritmen.

Scripts in kamers


De kamers of kamers zijn waar specifieke middelen worden geplaatst en waar het spel wordt gespeeld. Deze bronnen kunnen net als alle andere worden gemaakt vanuit het bijbehorende menu met Ruimte creëren:

VERGROTEN

Deze kamers of kamers kunnen ook scripts bevatten, hiervoor gaan we bij het bewerken van een kamer naar het tabblad instellingen binnen de eigenschappen van de kamer en daar zouden we de knop moeten zien Code maken:

Door op deze knop te drukken, wordt een leeg script gemaakt dat aan die kamer is gekoppeld en dat wordt uitgevoerd zodra een speler de kamer laadt, dit voordat een object zijn eigen gebeurtenis activeert.

GML-scripts
Zodra we weten waar we onze kunnen maken scripts en met welke bronnen we ze moeten associëren, is het tijd om de onderdelen te kennen waaruit onze scripts bestaan ​​en de concepten die we moeten beheersen, laten we eens kijken.

Programma's


Een programma in GML is een reeks instructies die een specifieke volgorde volgen, waarbij we kunnen zeggen dat elk script binnen GML is een programma waarbij deze programma's meestal worden afgesloten met accolades, laten we een voorbeeld bekijken:
 {str_text = "Hallo wereld"; x + = 10; if (x> 200) {str_text = "Hallo Solvetic"; }}
Zoals we kunnen zien, is het een eenvoudig programma waarbij we de instantie van een variabele van het type string maken, en vervolgens definiëren we dat elk frame of 10 eenheden worden toegevoegd aan x en tot slot een voorwaarde dat als x groter is dan 200, de opdracht opnieuw wordt uitgevoerd.

Het is belangrijk om te vermelden dat de puntkomma niet nodig is, maar voor: GML het wordt aanbevolen om het te gebruiken om het lezen van de code te verbeteren. Het is ook raadzaam om geen hoofdletters te gebruiken en dat als een variabele uit twee woorden bestaat, het onderstrepingsteken wordt gebruikt.

Variabelen
De variabelen in GML Dit zijn degenen die ons in staat stellen waarden weer te geven, en in tegenstelling tot de rest van sommige programmeertalen zijn ze niet strikt van één type, dat wil zeggen dat ze geen specifieke gegevensstructuur hoeven te vertegenwoordigen. Deze variabelen kunnen echter een van deze twee typen vertegenwoordigen:

  • Een reëel getal kan 200 of 5.356 zijn. Deze gehele getallen kunnen ook overeenkomen met een bepaalde instantie van een object, ruimte, script of ander type bron.
  • Een tekenreeks die een verzameling alfanumerieke tekens vertegenwoordigt die regelmatig worden gebruikt om tekst weer te geven, zoals: 'Hallo wereld'.

Variabele voorvoegsels


Zoals hierboven vermeld, kunnen variabelen overeenkomen met elk type gegevens, zelfs elk type bronnen, maar om dit probleem op te lossen hebben we de voorvoegsels voor de variabelen, waarmee we het type gegevens kunnen identificeren dat erin zit. Dit is niet verplicht, maar het is wel een conventie om beter te kunnen werken in GML, bijvoorbeeld als we: str_player_name We zullen al weten dat het een string is, laten we eens kijken naar de voorvoegsels die we kunnen gebruiken:
  • str: String
  • spr: Sprites
  • snd: Geluiden
  • bg: Achtergronden
  • pth: Routes
  • scr: Scripts
  • fnt: Lettertypen
  • tml: Tijdlijn
  • obj: Object
  • kamer: Kamer
  • ps: deeltjessysteem
  • bijvoorbeeld: deeltjeszender
  • pt: Type deeltjes
  • ev: Evenement

Omvang van variabelen


Binnen onze scripts hebben de variabelen verschillende scopes, wat betekent dat de manier waarop we de variabelen kunnen benaderen en de waarden kunnen instellen kan variëren. Laten we eens kijken naar de verschillende scopes die we hebben:

Voorbeeld


Deze variabelen zijn uniek voor de instantie of kopieën van elk object. Ze kunnen door henzelf en door andere objecten worden geopend en ingesteld, wat het meest gebruikelijk is binnen GML.

lokaal


Dit zijn degenen die alleen binnen een functie of een script bestaan, ze worden gedeclareerd met het gereserveerde woord var en ze zijn alleen toegankelijk in de scripts waarin ze zijn gedefinieerd.

Globaal


Een variabele die globaal is, kan door elk object worden benaderd via een script, het hoort bij het spel en niet bij de individuele instantie van de objectinstantie.

constanten


Constanten zijn variabelen waarvan de waarden alleen kunnen worden gelezen en niet kunnen worden gewijzigd, ze kunnen globaal of zelfs bijvoorbeeld zijn.

Aangezien we de verschillende soorten scopes van de variabelen kennen, laten we een klein voorbeeld bekijken van hoe we de opdracht uitvoeren volgens de scope:

 // geval 1 var a = 1; // geval 2 globalvar b; b = 2; // geval 3 globaal.c = 10; // geval 4 zelf.x = 10; // geval 5 y = 10;
Voor het eerste geval hebben we a lokale variabele, dit is gemakkelijk te herkennen aan het gebruik van het gereserveerde woord var. In het tweede geval hebben we de verklaring van a globale variabele en je opdracht. Voor geval 3 is het een alternatieve manier om a . te declareren en toe te kennen globale variabele en tot slot voor het geval 4 en 5 zijn instantievariabelen maar een van hen door zelf en de ander niet.

Taalvariabelen


Ten slotte hebben we met betrekking tot variabelen enkele globale en instantievariabelen die worden geleverd door Game Maker: Studio voor elk object, zoals x, sprite of index om er een paar te noemen. Maar er zijn taalvariabelen die ook globaal zijn: Gezondheid of gezondheid, scoren of scoren en leeft of leeft. Het gebruik van deze variabelen hangt af van elke ontwikkelaar, dus we kunnen besluiten om het zonder ze te doen, maar deze namen maken ze veel gemakkelijker te onthouden en toe te passen in onze programma's.

Functies
EEN functie in GML is het een functionaliteit waarmee u een programma kunt uitvoeren, het kan standaard in de taal worden geleverd of het kan worden gemaakt als een bron van het scripttype.

Deze functies kunnen een actie uitvoeren, zoals het wijzigen van de uitlijning van een lettertype tijdens de tekengebeurtenis, het retourneren van een waarde of het doen van beide, waarbij deze functies moeten worden gevolgd door haakjes en, indien nodig, bepaalde argumenten voor hun werking. Laten we een paar regels code bekijken om het gedrag van sommige functies te zien:

 // geval 1 draw_self (); // case 2 draw_arrow (0,0,100,100,2); // geval 3 willekeurige_waarde = willekeurig (10, 23);
Voor case nummer 1 hebben we een eenvoudige functie die een instantie tekent, case nummer 2 is een functie die een actie uitvoert en het vereist argumenten om te functioneren, tenslotte hebben we een functie die een actie uitvoert, namelijk het verkrijgen van een willekeurige waarde en retourneren het naar een variabele.

Er is een speciaal geval dat is script_execute, wat een functie is waarmee we toegang hebben tot de scripts die als bronnen zijn gemaakt, en de bijzonderheid is dat het ons in staat stelt om de variabelen van ons script te gebruiken en het vervolgens uit te voeren:

 zelf.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0.12, false);
Hoe kunnen we het spectrum van Game Maker: Studio gaat veel verder dan de interface, we hebben een krachtige tool zoals GML, die elementen bevat die bekend zijn bij ontwikkelaars, zoals variabelen of functies, en hierdoor kunnen we onze ontwikkelingskennis toepassen op de ontwikkeling van onze projecten en games.

wave wave wave wave wave