Script, variabili e funzioni in GameMaker: Studio

GameMaker: Studio e l'IDE che ci fornisce, possiamo creare videogiochi in modo rapido e semplice, fornendoci un'interfaccia amichevole e chiara che ci fornisce anche strumenti che ci aiutano a sviluppare i nostri giochi.

Uno di questi strumenti è GML o Linguaggio GameMaker, che estende molto di più le funzionalità del nostro ambiente e ci consente tramite script di scrivere il nostro codice per il progetto, che utilizzeremo insieme al resto degli elementi per lo sviluppo delle nostre applicazioni.

Creazione di script
Prima di prendere alcune righe di codice, daremo un'occhiata ai siti in cui sono presenti i nostri script, fornendoci una panoramica di cosa possiamo fare con essi a seconda della situazione.

Script all'interno di un evento


All'interno di un oggetto ci sono eventi ad esso associati, dove questi eventi possono contenere uno script o contenere un'azione che richiama uno di questi. Questa sarà l'unica volta in cui verrà utilizzata la funzionalità di trascinamento della selezione per gli script.

a aggiungi uno script ad un evento dobbiamo prima creare un oggetto dal nostro menu risorse e una volta creato utilizziamo il pulsante Aggiungi evento per crearlo:

INGRANDIRE

Dopo questa azione andiamo alla nostra scheda controllo e nella sezione Codice, trascineremo la prima icona che assomiglia a un foglio di carta nel Azioni e rilasceremo, questa azione creerà il nostro script e potremo iniziare a scrivere le nostre righe di codice:

INGRANDIRE

Creazione di script come risorse


Per creare uno script come risorsa, andiamo al nostro menu delle risorse e selezioniamo Crea script, dove una volta creato lo script apparirà nell'albero delle risorse sotto la sezione corrispondente:

INGRANDIRE

Abbiamo diversi modi per creare uno script e ognuno di questi ha i suoi vantaggi, nel caso di uno script come risorsa le seguenti condizioni sono le più utili:

  • Quando molti oggetti utilizzano la funzionalità
  • Quando una funzione richiede più input di dati o argomenti.
  • Quando vengono utilizzate azioni globali come il caricamento e il salvataggio.
  • Quando si implementano logiche o algoritmi complessi.

Script nelle stanze


Il camere o le stanze sono dove vengono posizionate risorse specifiche e dove si gioca. Queste risorse possono essere create come qualsiasi altra dal menu corrispondente con Crea stanza:

INGRANDIRE

Queste stanze o stanze possono anche contenere script, per questo quando stiamo modificando una stanza andiamo alla scheda delle impostazioni all'interno delle proprietà della stanza e lì dovremmo vedere il pulsante Creazione del codice:

Premendo questo pulsante creerà uno script vuoto associato a quella stanza che verrà eseguito una volta che un giocatore carica la stanza, questo prima che qualsiasi oggetto attivi il proprio evento.

Script GML
Una volta che sappiamo dove possiamo creare il nostro script ea quali risorse associarli è tempo di conoscere le parti che compongono i nostri script e i concetti che dobbiamo padroneggiare, vediamo.

Programmi


Un programma in GML è una serie di istruzioni che seguono un ordine specifico, dove possiamo dire che qualsiasi script all'interno GML è un programma in cui questi programmi sono solitamente chiusi da parentesi graffe, vediamo un esempio:
 {str_text = "Ciao mondo"; x + = 10; if (x> 200) {str_text = "Hello Solvetic"; }}
Come possiamo vedere, è un semplice programma dove facciamo l'istanza di una variabile di tipo stringa, quindi definiamo che ogni frame o 10 unità vengono aggiunti a X e infine una condizione che se x è maggiore di 200, l'assegnazione viene eseguita nuovamente.

È importante ricordare che il punto e virgola non è necessario, tuttavia per GML se ne consiglia l'utilizzo per migliorare la lettura del codice. Si consiglia inoltre di non utilizzare lettere maiuscole e che se una variabile sarà composta da due parole, utilizzare il carattere di sottolineatura.

Variabili
Le variabili in GML Sono quelli che ci consentono di rappresentare valori e, a differenza del resto di alcuni linguaggi di programmazione, non sono strettamente di un tipo, cioè non devono rappresentare una struttura dati specifica. Tuttavia, queste variabili possono rappresentare uno di questi due tipi:

  • Un numero reale può essere 200 o 5.356. Questi numeri interi possono anche corrispondere a una particolare istanza di un oggetto, una stanza, uno script o un altro tipo di risorsa.
  • Una stringa che rappresenta una raccolta di caratteri alfanumerici utilizzati regolarmente per visualizzare testo come: "Hello World".

Prefissi variabili


Come accennato in precedenza, le variabili possono corrispondere a qualsiasi tipo di dato, anche a qualsiasi tipo di risorsa, ma per risolvere questo problema abbiamo i prefissi per le variabili, che ci permettono di identificare il tipo di dati in esso contenuti. Questo non è obbligatorio, ma è una convenzione per poter lavorare meglio in GML, ad esempio se abbiamo str_player_name Sapremo già che si tratta di una stringa, vediamo i prefissi che possiamo usare:
  • str: Stringa
  • spr: Sprite
  • snd: Suoni
  • bg: Sfondi
  • pth: Itinerari
  • scr: Script
  • fnt: caratteri
  • tml: Timeline
  • obj: oggetto
  • rm: Stanza
  • ps: sistema di particelle
  • ad es.: Emettitore di particelle
  • pt: Tipo di particelle
  • ev: Evento

Ambito delle variabili


All'interno dei nostri script le variabili hanno ambiti diversi, il che significa che il modo in cui possiamo accedere alle variabili e impostare i valori può variare. Vediamo i diversi ambiti che abbiamo:

Esempio


Queste variabili sono univoche per l'istanza o le copie di ciascun oggetto. È possibile accedervi e impostarli da soli e da altri oggetti, essendo i più comuni all'interno di GML.

Locale


Questi sono quelli che esistono solo all'interno di una funzione o di uno script, sono dichiarati usando la parola riservata varia ed è possibile accedervi solo negli script in cui sono definiti.

Globale


Una variabile globale è accessibile da qualsiasi oggetto tramite uno script, appartiene al gioco e non alla singola istanza dell'istanza dell'oggetto.

costanti


Le costanti sono variabili i cui valori possono essere solo letti e non modificati, possono essere globali o addirittura di istanza.

Poiché conosciamo i diversi tipi di scope delle variabili, vediamo un piccolo esempio di come eseguiamo l'assegnazione in base allo scope:

 // caso 1 var a = 1; // case 2 globalvar b; b = 2; // caso 3 globale.c = 10; // caso 4 self.x = 10; // caso 5 y = 10;
Per il primo caso abbiamo a variabile locale, questo è facilmente identificabile dall'uso della parola riservata varia. Nel secondo caso abbiamo la dichiarazione di a variabile globale e il tuo incarico. Per il caso 3 è un modo alternativo di dichiarare e assegnare a variabile globale e infine per il caso 4 e 5 sono variabili di istanza ma uno di loro attraverso se stesso e l'altro no.

Variabili della lingua


Infine, in tema di variabili abbiamo alcune variabili globali e di istanza fornite da GameMaker: Studio per ogni oggetto, come x, sprite o indice per citarne alcuni. Ma ci sono le variabili del linguaggio che sono anche globali come Salute o salute, punto o segna e vite o vive. L'uso di queste variabili dipende da ogni sviluppatore quindi possiamo decidere di farne a meno, ma questi nomi le rendono molto più facili da ricordare e da applicare nei nostri programmi.

Caratteristiche
UN funzione in GML è una funzionalità che permette di eseguire un programma, può arrivare di default nella lingua oppure può essere creata come risorsa di tipo script.

Queste funzioni possono eseguire un'azione come cambiare l'allineamento di un font durante l'evento di disegno, restituire un valore o fare entrambe le cose, dove queste funzioni devono essere seguite da parentesi e, se necessario, da determinati argomenti per il loro funzionamento. Diamo un'occhiata ad alcune righe di codice per vedere il comportamento di alcune funzioni:

 // caso 1 draw_self (); // caso 2 draw_arrow (0,0,100,100,2); // caso 3 valore_casuale = casuale (10, 23);
Per il caso numero 1 abbiamo una semplice funzione che disegna un'istanza, il caso numero 2 è una funzione che esegue un'azione e richiede argomenti per funzionare, infine abbiamo una funzione che esegue un'azione, ovvero ottenere un valore casuale e restituire esso a una variabile.

C'è un caso speciale che è script_execute, che è una funzione che ci permette di accedere agli script creati come risorse, e la particolarità è che ci permette di utilizzare le variabili del nostro script per poi eseguirlo:

 self.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0.12, false);
Come possiamo vedere lo spettro di GameMaker: Studio si estende ben oltre la sua interfaccia, abbiamo uno strumento potente come GML, che ha elementi familiari agli sviluppatori come variabili o funzioni, e attraverso questo possiamo applicare le nostre conoscenze di sviluppo allo sviluppo dei nostri progetti e giochi.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave