Game Maker Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m ., typos fixed: sottoforma → sotto forma |
|||
Riga 13:
Esistono 3 tipi di programmazione: 1) ad icone 2) a codice 3) ibrido (entrambi i precedenti).
- A questo punto, mediante un [[editor grafico]] si inseriscono gli oggetti (ovvero si creano quelle che vengono chiamate "[[istanza di oggetto]]") in un'area denominata stanza.
Da notare che molteplici istanze dello stesso oggetto (se l'oggetto è stato programmato in tal senso) agiranno l'una rispetto all'altra in maniera autonoma. Gli oggetti che non avranno istanze (ovvero che non sono inseriti nella stanza) non funzioneranno (la loro programmazione verrà ignorata). le istanze, oltre che mediante editor grafico, possono anche essere create dinamicamente (in qualsiasi momento) da un'altra istanza (non necessariamente dello stesso oggetto) o dal creation code della room stessa durante l'esecuzione del [[software]].
==Variabili==
La divisione per tipi di dato è piuttosto semplice, esistono solo 2 tipi di [[Variabile (informatica)|variabili]]: numeriche e stringhe (le variabili booleane sono considerate come di tipo numerico: tecnicamente non formano un tipo di dati a parte).
esiste anche una divisione (indifferentemente dal tipo di dati contenuto) in variabili globali, di istanza e temporanee
* '''globali''': a ogni nome univoco ne corrisponde una sola, che è accessibile e modificabile da un codice che può essere posto indistintamente in qualsiasi [[script]] o qualunque evento di qualunque oggetto
* '''di istanza''': a ogni nome univoco ne possono corrispondere molteplici: una per oggetto (o più precisamente una per istanza di oggetto)
* '''temporanee''': a ogni nome univoco ne possono corrispondere molteplici: una per script o piece of code (ogni evento può avere uno o più "piece of code") dove è posizionata. Questo tipo di variabili è da considerarsi completamente privato (a differenza di delle variabili di istanza), ovvero uno script o piece of code che generano una variabile temporanea hanno accesso unico a quella variabile (la quale comunque verrà rimossa alla fine del "piece of code" in cui era dichiarata).
Riga 37 ⟶ 35:
nome_variabile = dato_che_vuoi;
</source>
È chiaro che prima di accedere a una variabile bisogna almeno una volta fare un' assegnazione (in questo caso detta inizializzazione, intesa come inserimento dei valori iniziali).
Da notare che "dato_che_vuoi" oltre che essere un semplice dato, può anche essere espressione che coinvolge sia variabili, sia valori (stringhe, numeri o booleni), sia function o script, il tutto combinato insieme mediante operatori (matematici, di stringa e booleani) a seconda di ciò che si vuole fare. NB: l' ordine di computazione della espressione e da sinistra a destra, per cambiare tale ordine si possono usare delle [[parentesi tonde]].
Riga 70 ⟶ 68:
NB: * i codici, tranne quello nel creation_event della room, vengono tutti eseguiti dalle istanze di oggetti
* '''mouse_global_ev'''
questo evento si scatena quando il giocatore clicca su un' istanza che contiene tale evento
Riga 139 ⟶ 137:
</source>
I Blocchi di istruzioni sono racchiusi tra parentesi graffe Se la condizione che viene dopo la keyword "if" è verificata (con risultato true, quindi) verrà eseguito il primo blocco altrimenti il secondo. La condizione può essere un'[[espressione booleana]] più o meno complessa in base a ciò che si vuole ottenere. (Le variabili e espressioni booleane fanno parte della [[algebra di Boole]] che trova utilizzo in elettronica e informatica.)
esempio:
Riga 190 ⟶ 188:
'''&&'''
[[
'''||'''
[[
'''^^'''
[[
''' ! '''
[[
'''note:'''
* Da notare che l'ordine in cui vengono computate le espressioni booleane complesse è da sinistra a destra, a meno che un non si generi un ordine diverso usando delle [[parentesi tonde]].
* esempio di espressione incoerente
Non ha senso fare un test tra valore un prettamente booleano (come quello risultante da "instance_exists(obj_stella)") con un valore di altro tipo (numerico diverso da 0 e 1 o stringa) facendo un esempio:
Riga 227 ⟶ 224:
argomenti che sono stati inseriti nella chiamata come [[input]]. Invece per generare la restituzione di un valore di [[output]] userà la parola chiave "return" (essa provocherà anche la terminazione dello script eseguito).
Gli argument possono essere accessibili anche
È da notare che i valori restituiti non possono essere più di 1 per chiamata.
Riga 294 ⟶ 291:
Trad:
* "ds_list"=struttura di dati di tipo lista
* "ds_grid"=struttura di dati di tipo griglia
Riga 335 ⟶ 331:
* non possono contenere spazi vuoti
* non sono visti come delle stringhe, per questo motivo non vanno tra virgolette
* sono visti dal computer come contenenti degli id numerici (un po' come delle variabili numeriche di sola lettura).
== Esempi ==
|