Scripturi, variabile și funcții în GameMaker: Studio

GameMaker: Studio și IDE-ul pe care ni-l oferă, putem crea jocuri video rapid și ușor, oferindu-ne o interfață prietenoasă și clară care ne oferă, de asemenea, instrumente care ne ajută să ne dezvoltăm jocurile.

Unul dintre aceste instrumente este GML sau Limba GameMaker, care extinde funcționalitatea mediului nostru mult mai mult și ne permite prin scripturi să scriem propriul cod pentru proiect, pe care îl vom folosi împreună cu restul elementelor pentru dezvoltarea aplicațiilor noastre.

Crearea de scripturi
Înainte de a continua să luăm câteva linii de cod, vom analiza site-urile în care sunt prezente scripturile noastre, oferindu-ne o imagine de ansamblu a ceea ce putem face cu ele în funcție de situație.

Scriptarea în cadrul unui eveniment


În cadrul unui obiect există evenimente asociate acestuia, în care aceste evenimente pot conține un script sau pot conține o acțiune care numește una dintre acestea. Aceasta va fi singura dată când funcționalitatea Drag and Drop va fi utilizată pentru scripturi.

La adăugați un script la un eveniment trebuie mai întâi să creăm un obiect din meniul nostru de resurse și, odată creat, folosim butonul adaugă eveniment pentru a-l crea:

MARI

După această acțiune, mergem la fila noastră Control iar în secțiune Cod, vom trage prima pictogramă care arată ca o foaie de hârtie în Acțiuni și vom lansa, această acțiune ne va crea scriptul și putem începe să scriem liniile noastre de cod:

MARI

Crearea de scripturi ca resurse


Pentru a crea un script ca resursă, mergem la meniul nostru de resurse și selectăm Creați script, în cazul în care, odată creat scriptul, acesta va apărea în arborele resurselor de sub secțiunea corespunzătoare:

MARI

Avem mai multe moduri de a crea un script și fiecare dintre acestea are avantajele sale, în cazul unui script ca resursă, următoarele condiții sunt cele mai utile:

  • Când multe obiecte folosesc funcționalitatea
  • Când o funcție necesită mai multe intrări de date sau argumente.
  • Când se utilizează acțiuni globale precum încărcare și salvare.
  • Când implementați logică complexă sau algoritmi.

Scripturi în camere


camere sau camere sunt locul în care sunt plasate resurse specifice și locul în care se joacă jocul. Aceste resurse pot fi create ca oricare alta din meniul corespunzător cu Creați cameră:

MARI

Aceste camere sau camere pot conține și scripturi, pentru aceasta, atunci când edităm o cameră, mergem la fila de setări din proprietățile camerei și acolo ar trebui să vedem butonul Crearea codului:

Apăsarea acestui buton va crea un script necompletat asociat cu camera respectivă, care va fi executat odată ce un jucător încarcă camera, înainte ca orice obiect să-și declanșeze propriul eveniment.

Scripturi GML
Odată ce știm unde ne putem crea scripturi și la ce resurse pentru a le asocia este timpul să cunoaștem părțile care alcătuiesc scripturile noastre și conceptele pe care trebuie să le stăpânim, să vedem.

Programe


Un program în GML este o serie de instrucțiuni care urmează o anumită ordine, unde putem spune că orice script din GML este un program în care aceste programe sunt de obicei închise cu paranteze, să vedem un exemplu:
 {str_text = "Hello world"; x + = 10; if (x> 200) {str_text = "Hello Solvetic"; }}
După cum putem vedea, este un program simplu în care creăm instanța unei variabile de tip șir, apoi definim că fiecare cadru sau 10 unități sunt adăugate la X și în cele din urmă o condiție că, dacă x este mai mare de 200, atribuirea se efectuează din nou.

Este important de menționat că punctul și virgula nu este necesar, totuși pentru GML se recomandă utilizarea acestuia pentru a îmbunătăți citirea codului. De asemenea, este recomandabil să nu utilizați majuscule și dacă o variabilă va fi alcătuită din două cuvinte, utilizați sublinierea.

Variabile
Variabilele din GML Acestea sunt cele care ne permit să reprezentăm valori și, spre deosebire de restul unor limbaje de programare, acestea nu sunt strict de un singur tip, adică nu trebuie să reprezinte o structură de date specifică. Cu toate acestea, aceste variabile pot reprezenta unul dintre aceste două tipuri:

  • Un număr real poate fi 200 sau 5.356. Aceste numere întregi pot corespunde, de asemenea, unei anumite instanțe a unui obiect, cameră, script sau alt tip de resursă.
  • Un șir care reprezintă o colecție de caractere alfanumerice care sunt utilizate în mod regulat pentru a afișa text precum: „Hello World”.

Prefixe variabile


După cum s-a menționat mai sus, variabilele pot corespunde oricărui tip de date, chiar și oricărui tip de resurse, dar pentru a rezolva această problemă avem prefixele pentru variabile, care ne permit să identificăm tipul de date conținute în ea. Acest lucru nu este obligatoriu, dar este o convenție pentru a putea funcționa mai bine în GML, de exemplu, dacă avem str_player_name Vom ști deja că este un șir, să vedem prefixele pe care le putem folosi:
  • str: String
  • spr: Sprite
  • snd: Sunete
  • bg: Fundaluri
  • pth: Rute
  • scr: Scripturi
  • fnt: Fonturi
  • tml: cronologie
  • obj: Obiect
  • rm: Cameră
  • ps: Sistemul de particule
  • de ex .: emițător de particule
  • pt: Tipul particulelor
  • ev: Eveniment

Domeniul de aplicare al variabilelor


În cadrul scripturilor noastre, variabilele au scopuri diferite, ceea ce înseamnă că modul în care putem accesa variabilele și seta valorile poate varia. Să vedem diferitele domenii pe care le avem:

Instanță


Aceste variabile sunt unice pentru instanța sau copiile fiecărui obiect. Ele pot fi accesate și setate de ele însele și de alte obiecte, fiind cele mai frecvente în cadrul GML.

local


Acestea sunt cele care există doar în cadrul unei funcții sau a unui script, sunt declarate folosind cuvântul rezervat var și pot fi accesate numai în scripturile în care sunt definite.

Global


O variabilă globală poate fi accesată de orice obiect printr-un script, aparține jocului și nu instanței individuale a instanței obiect.

Constante


Constantele sunt variabile ale căror valori pot fi citite doar și nu modificate, pot fi globale sau chiar instanță.

Deoarece cunoaștem diferitele tipuri de domenii ale variabilelor, să vedem un mic exemplu de modul în care realizăm atribuirea în funcție de domeniu:

 // cazul 1 var a = 1; // cazul 2 globalvar b; b = 2; // caz 3 global.c = 10; // cazul 4 self.x = 10; // caz 5 y = 10;
Pentru primul caz avem un variabila locala, acest lucru este ușor identificat prin utilizarea cuvântului rezervat var. În al doilea caz, avem declarația a variabila globala și misiunea dvs. Pentru cazul 3 este o modalitate alternativă de declarare și atribuire a variabila globala și în cele din urmă pentru cazul 4 și 5 sunt variabile de instanta dar unul dintre ei prin de sine iar celălalt nu.

Variabile de limbă


În cele din urmă, subiectul variabilelor avem câteva variabile globale și de instanță care sunt furnizate de GameMaker: Studio pentru fiecare obiect, cum ar fi x, sprite sau index ca să menționez câteva. Dar există variabile de limbaj care sunt, de asemenea, globale sănătate sau sănătate, Scor sau scor și vieți sau trăiește. Utilizarea acestor variabile depinde de fiecare dezvoltator, astfel încât să putem decide să renunțăm la ele, dar aceste nume le fac mult mai ușor de reținut și de aplicat în programele noastre.

Caracteristici
A funcţie în GML este o funcționalitate care vă permite să rulați un program, poate veni în mod implicit în limba sau poate fi creat ca o resursă de tip script.

Aceste funcții pot executa o acțiune cum ar fi schimbarea alinierii unui font în timpul evenimentului de desen, returnarea unei valori sau efectuarea ambelor, în cazul în care aceste funcții trebuie să fie urmate de paranteze și, dacă este necesar, anumite argumente pentru funcționarea lor. Să ne uităm la câteva linii de cod pentru a vedea comportamentul unor funcții:

 // cazul 1 draw_self (); // cazul 2 draw_arrow (0,0,100,100,2); // caz 3 valoare_aleatorie = aleatoriu (10, 23);
Pentru cazul numărul 1 avem o funcție simplă care atrage o instanță, cazul numărul 2 este o funcție care execută o acțiune și necesită argumente pentru a funcționa, în cele din urmă avem o funcție care execută o acțiune, care este de a obține o valoare aleatorie și a reveni la o variabilă.

Există un caz special care este script_execute, care este o funcție care ne permite să accesăm scripturile create ca resurse, iar particularitatea este că ne permite să folosim variabilele scriptului nostru și apoi să îl executăm:

 self.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0,12, fals);
Cum putem vedea spectrul GameMaker: Studio se extinde mult dincolo de interfața sa, avem un instrument puternic, cum ar fi GML, care are elemente familiare dezvoltatorilor, cum ar fi variabile sau funcții, și prin aceasta putem aplica cunoștințele noastre de dezvoltare la dezvoltarea proiectelor și jocurilor noastre.

wave wave wave wave wave