Game Maker Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Correzione di uno o più errori comuni |
|||
Riga 36:
È 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'
====Assegnazione relativa====
Una variabile può anche fare un calcolo su se stessa (a patto di essere già stata inizializzata). Un semplice esempio è dato dal contare: quando un software fa comparire a schermo un conto alla rovescia non fa altro che eseguire (ciclicamente) questo comando:
Riga 117:
Allo stesso modo se una function restituisce un dato significativo la parte "data_out =", sebbene generalmente consigliata, non è obbligatoria.
in GML Le function definite (e programmate) dall'
==If e blocchi di istruzioni==
Riga 233:
Quando si definisce un parent succedono alcune cose:
- l'oggetto figlio eredita il codice del parent (a meno che esista un evento di stesso tipo nell'
NB: * in caso si voglia mantenere attivo sia l'evento del padre sia del figlio bisogna usare la function "event_inherited"
- se una istanza qualunque esegue un codice sull'
- se una funzione viene incaricata di fare un calcolo relativamente un oggetto parent (per esempio trovare l'istanza più vicina) prenderà, durante il calcolo, in considerazione anche tutti gli oggetti figli (a meno che si mettano deliberatamente dei controlli sulla variabile built-in "object_index").
==Array==
gli array (dall'
usando le variabili
<source lang=gml>
Riga 262:
Sebbene i due codici paiono pressoché identici ci sono alcune grosse differenze:
* al posto di un indice è possibile mettere il nome di una variabile
* le operazioni di assegnazione o di testing possono essere eseguite in un ciclo (naturalmente tutte le operazioni possono essere messe in un ciclo ma ciclare gli array ne può giustificarne ulteriormente l'
Notare che l'
Per rendere un array temporaneo (ovvero per liberare la memoria quando i dati non sono più necessari) bisogna crearlo come "variabile temporanea" (vedi sezione dedicata questa pagina alla sezione "variabili" ).
Riga 273:
num[7] = 10;
</source>
il numero 7 verrà memorizzato alla posizione 8 dell'
===array bidimensionali===
Riga 281:
num[11,7] = 13
</source>
il numero 13 verrà memorizzato "a cooridinate" (11,7) dell'
===array tridimensionali===
gli array 3D non sono previsti dall'
===liste e grid (data structure)===
Sono sostanzialmente degli array monodimensionali e bidimensionali.
Riga 297:
NB: anche queste strutture (come gli array "classici") possono essere rimosse dalla [[RAM]] quando i dati non servono più, pero il meccanismo è diverso: gli array classici per essere rimossi devono essere creati come privati di uno script o piece of code (verranno quindi autorimossi alla fine di esso), invece le liste e griglie sono condivise (obbligatoriamente) e possono essere cancellate (in qualsiasi momento) mediante l'apposita funzione nativa.
==nomenclatura degli elementi==
Quando si crea un nuovo progetto vengono creati oggetti, sprite, rooms, suoni ed altre cose (generalmente visibili in un sistema di cartelle posizionato in alto a sinistra dell'
Spesso si usano delle convenzioni che mirano a evitare ambiguità (che nella migliore delle ipotesi aumenta inutilmente il tempo necessario allo svilluppo del progetto).
|