Game Maker Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 128:
==If e blocchi di istruzioni==
sintassi:
<sourcesyntaxhighlight lang="gml">
if (condizione)
{
Riga 141:
azione3
}
</syntaxhighlight>
</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:
<sourcesyntaxhighlight lang="gml">if (num > 3)
if (num > 3)
{
show_message("il numero è maggiore di 3")
Riga 154 ⟶ 155:
show_message("il numero è uguale o minore a 3")
}
</syntaxhighlight>
</source>
Nel caso qui sopra l'espressione e data un test con il ">" ("se la variabile num ha un valore maggiore di 3 esegui il primo blocco di istruzioni altrimenti esegui il secondo"), invece in altri casi il test può essere generato da una function booleana (ovvero che restituisce valori booleani)
 
esempio:
<sourcesyntaxhighlight lang="gml">
if (instance_exists(oggetto_stella))
{
show_message("esiste almeno un oggetto stella")
Riga 166 ⟶ 168:
show_message("nessun oggetto stella presente")
}
</syntaxhighlight>
</source>Se si desidera creare espressioni booleane complesse si può combinare più espressioni booleane semplici tra di loro usando gli operatori booleani.
 
===Operatori booleani===
'''nelleNelle espressioni booleane è possibile usare degli operatori booleani.'''
 
Tutte le espressioni booleane restuituiscono valori booleani (true o false, 1 o 0, si o no, vero o falso) ma, in alcuni casi, possono avere in ingresso anche dati di altro tipo.
Riga 213 ⟶ 217:
* 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:
<sourcesyntaxhighlight lang="gml">
dat_out = (instance_exists(obj_stella) == 3)
</syntaxhighlight>
</source>
Analizzando la linea: quella funzione (per definizione) può restituire solo due valori (0 e 1), e quindi non ha senso chiedersi se tale valore sia uguale a 3 o no. (NB: in realtà in GML non è errore di sintassi in senso stretto).