Game Maker Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 128:
==If e blocchi di istruzioni==
sintassi:
<
if (condizione)
{
Riga 141:
azione3
}
</syntaxhighlight>
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:
<
if (num > 3)
{
show_message("il numero è maggiore di 3")
Riga 154 ⟶ 155:
show_message("il numero è uguale o minore a 3")
}
</syntaxhighlight>
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:
<
if (instance_exists(oggetto_stella)) {
show_message("esiste almeno un oggetto stella")
Riga 166 ⟶ 168:
show_message("nessun oggetto stella presente")
}
</syntaxhighlight>
===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:
<
dat_out = (instance_exists(obj_stella) == 3)
</syntaxhighlight>
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).
|