Creare Videogiochi - Game Developer

Versione completa: Unreal Script - Tutorial 5.
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Buona giornata,

Oggi parleremo degli strumenti di ripetizione, da non confondere con quelli di selezione. Essi servono a creare dei cicli, ma facciamo attenzione: come abbiamo visto nella lezione sulle funzioni, i cicli posso scatenare un crash in Udk. Ma vediamo quali sono questi cicli:

- While
- For
- Do Until
- For Each

Il funzionamento degli ultimi due sembra abbastanza intuitivo, Fino a quando e Per ogni. Ma, apparte questo, andiamo a vedere come si usano.

While
La sua sintassi è questa:
Citazione:While(A < 5) // E' sottointeso che A la valuta di A sia minore di 5
{
`Log( " A è minore di 5 ");
}
Tutto questo scatenerà un Crash. Perchè?
Perchè la variabile A non sarà mai maggiore di 5, poichè il valore non potrà cambiare.
E' come dire:
Citazione:Parla con il cane fino a quando esso non ti risponde.
E' ovvio che i cani non possono parlare(Come la variabile A, senza nessuna istruzione per ciò, cambi valore) Quindi parleremo con il cane all' infinito. Come ovviare a ciò? Usando l' operatore ++.
L' operatore ++ aggiunge la valuta di 1 al valore iniziale di una variabile, ogni volta che essa viene chiamata, quindi, al di sopra del Log, aggiungiamo:
Citazione:A++;
Nota bene: A è il nome della variabile.
Immaginiamo che il valore della variabile A sia 3.
Il ciclo viene chiamata, A è minore di 5 ( 3 ) , quindi stampa il Log e aggiungi 1 alla variabile A, è ancora minore, ora è 4, quindi riscrivilo, fino a quando non arriverà a 5. Quindi la frase:
Citazione:A è minore di 5
Verrà registrata, nel Log, due volte.
Nota bene: l' Unreal Script, come tutti i linguaggi di programmazione/Script, quando "conta" non parte da 1, bensì da 0, quindi,se noi contiamo fino a 10 in questo modo:
Citazione:1
2
3
4
5
6
7
8
9
10
Unreal Script(e, ripetiamo: anche tutti gli altri linguaggi di programmazione/ Script) Conteranno in questo modo:
Citazione:0
1
2
3
4
5
6
7
8
9
For
Esso è simile a While. Ma nelle parentesi ha bisogno di una dichiarazione. Ovvero
Citazione:For(Valore-Variabile;Condizioni-ripetizione;Operatore);
Confusi? Vediamo il tutto usando la variabile A
Citazione:For(A=0;A < 5;A++)
Le istruzioni che seguono nelle parentesi graffe dell' operatore For sono uguali a quelle del While.
Do Until
In italiano, sarebbe
Citazione:Fai, finchè.
Ad esempio:
Citazione:Do
{
Mangia;
}Until(Il piatto è vuoto);
// Prestate attenzione, Until va collocato proprio li.
Vediamolo con la variabile A:
Citazione:Do
{
`Log( " A è minore di 5 ");
A++;
}Until(A == 5);
For Each
For Each è un discorso diverso. Esegue un' istruzione per ogni oggetto, deciso da noi, presente sulla mappa, ma lo tratteremo in seguito.


Buona giornata.
Citazione:For(Valore-Variabile;Condizioni-ripetizione;Operatore);
Direi più:
Citazione:For(inizializzazione, espressione booleana, aggiornamento istruzione);
Ma sono dettagli, quindi non è importante.

Per quanto riguarda il "Do", ti sei dimenticato di dire, che confronto al while esso permette, prima di controllare con l'espressione booleana { while(espressione booleana) }, di fare una prima interazione.

Per quanto riguarda il ForEach, non è altro che un for migliorato. C'è una variabile temporanea nella quale viene salvato l'i-esimo dell'oggetto (esempio: un array). Faccio un esempio in Java:

Codice PHP:
int arr[] = {1,2,3,4,5};

for (
int tmp arr[]) {
    
System.out.println(tmp);


Cosi facendo verranno stampati a console tutti gli elementi dell'array.
Buona giornata Skyline,

Grazie mille per le correzioni. Lo apprezzo molto.
Bravo Bravo!
Comunque è molto simile al C#, e me gusta assai Tongue