‫Ciao e benvenuto a questa lezione.
‫Impareremo come eseguire un pezzo di codice un numero variabile di volte in modo da
‫poter stampare ogni oggetto che si sovrappone all'interno di quest'area, questo componente trigger.
‫Quindi puoi vedere qui che quando siamo entrambi, io sono dentro e c'è anche un gargoyle.
‫Sta stampando sia il nome dei gargoyle che il nome dei progetti del giocatore.
‫Immergiamoci e vediamo come è fatto.
‫Ora, il problema con il nostro codice qui è che il nostro array di attori può avere molto più di un
‫solo attore e se vogliamo che mostri tutti gli attori sovrapposti, vogliamo fare qualcosa con tutti
‫quegli attori.
‫Dobbiamo essere in grado di eseguire il codice.
‫Sarebbe altamente inefficiente scrivere una dichiarazione if per il caso in cui ne abbiamo due o
‫tre o quattro o cinque, ecc. E certamente non prenderebbe mai tutti i casi perché abbiamo un numero limitato
‫di righe nel nostro file.
‫Quindi il modo in cui affrontiamo questo problema, vogliamo ripetere un pezzo di codice più volte, ma un numero di volte che in
‫realtà non sappiamo.
‫Quando stiamo compilando il codice, dobbiamo sostituire la nostra istruzione if, dove l'istruzione if dice essenzialmente,
‫dovrei eseguire questo codice o meno con qualcosa che dice, dovrei eseguire questo codice o dovrei eseguirlo
‫molte volte, due volte, tre volte, quattro volte, ecc.?
‫Il modo in cui lo facciamo è con qualcosa chiamato dichiarazione selvaggia.
‫Ora è costruito in modo molto simile a un'istruzione if.
‫Quindi nel frattempo metti una sorta di valore booleano tra parentesi, e poi abbiamo delle parentesi graffe e all'interno
‫delle parentesi graffe, un blocco di codice che continuerà a essere eseguito
‫ancora e ancora finché la condizione nella nostra istruzione jolly non diventa falsa .
‫Ecco perché si chiama mentre.
‫Quindi, mentre questa cosa è vera, esegui questo codice.
‫Quindi è un po' come un'istruzione if in quanto a volte potrebbe non eseguire affatto il codice,
‫ma a differenza della sua istruzione che può eseguire un pezzo di codice solo una volta, l'istruzione wild
‫potrebbe praticamente continuare a eseguirla per sempre se questo booleano non diventa mai falso.
‫Allora perché è utile?
‫Bene, potremmo creare un int 32 e chiamarlo index e iniziarlo da zero.
‫E poi ogni volta che attraversiamo il corpo di questo ciclo selvaggio, aumentiamo il valore memorizzato in quell'indice.
‫Quindi potremmo dire che indice è uguale a indice più uno.
‫Ora in C++, c'è una scorciatoia per farlo invece di dover fare index più uno in
‫questo modo, fai più più indice e questo aggiunge solo uno a tutto ciò che è memorizzato nella variabile index.
‫Bene.
‫Quindi partiamo da zero.
‫Noi ogni volta che giriamo, aumentiamo l'indice.
‫E quello che possiamo fare è farlo in modo da aggirare questo ciclo selvaggio solo mentre il nostro indice è entro
‫i limiti del nostro array.
‫Quindi possiamo dire che l'indice deve essere inferiore al punto num degli attori.
‫Quindi questa è la dimensione dell'array.
‫Ricorda che quando abbiamo cinque elementi nell'array, l'ultimo elemento nell'array è l'indice quattro.
‫E quindi possiamo vedere che questo sarà vero quando l'indice è valido, quando l'indice quattro è inferiore a cinque.
‫Ma non appena quell'indice supera la fine dell'array, quando arriva all'indice cinque, il numero dell'attore non
‫sarà più non sarà più cinque non sarà più inferiore a cinque.
‫Quindi il ciclo while interromperà l'esecuzione e continuerà con il resto della funzione.
‫Quindi ciò significa che ora potremmo prendere il codice che avevamo sopra e riscriverlo, prenderlo, copiarlo, ritagliarlo
‫e incollarlo qui tra un po'.
‫Ciclo continuo.
‫Ma prima di aumentare l'indice, soprattutto, perché quello che faremo è sostituire questo zero
‫in cui stavamo ottenendo l'attore zero, possiamo sostituirlo con l'indice dell'attore.
‫Quindi seguiamo questo.
‫Come funzionerebbe.
‫Bello.
‫Rimuovi la nostra istruzione if perché crea un po' di confusione.
‫Quindi iniziamo il valore nella variabile index sarà zero.
‫Ora immagina di dover agire per mantenere le cose semplici è zero meno di due.
‫Si si lo è.
‫Quindi entriamo e otteniamo l'attore zero, otteniamo il suo nome e lo disconnettiamo e quindi aumentiamo il valore nell'indice
‫di uno.
‫Quindi si passa dall'essere zero all'essere uno.
‫Ora torniamo a valutare la condizione del ciclo while e diciamo uno meno di due?
‫Sì.
‫Possiamo quindi entrare e prendere l'attore uno e poi prenderemo il suo nome e stamperemo il suo nome.
‫Quindi aumentiamo nuovamente l'indice all'indice due e poniamo di nuovo la domanda nel ciclo while dicendo che due
‫sono meno di due?
‫Bene, la risposta è no.
‫Quindi saltiamo il corpo del ciclo while e proseguiamo ed eseguiamo il resto del codice.
‫Quindi è fondamentalmente ciò che vogliamo ottenere.
‫Vogliamo stampare il nome di ogni attore nell'array, ed è quello che farà questo pezzo di
‫codice.
‫Andiamo avanti e compiliamolo e controlliamo che ho ragione.
‫Se andiamo avanti e premiamo play ed entriamo nell'area, puoi vedere che stavamo sovrapponendo solo il giocatore
‫BP.
‫E se andiamo a prendere il nostro gargoyle?
‫Se lo infiliamo solo nel rimbalzo, puoi vedere che ci sovrapponiamo al gargoyle.
‫Ma cosa succede se intervengo anche io?
‫Ora puoi vedere che sta stampando sia quello che si sovrappone al giocatore che il gargoyle tutti nella stessa cornice.
‫Quindi il nostro loop selvaggio sta funzionando.
‫Sta eseguendo un pezzo di codice più volte quando sono presenti più attori nell'array.
‫Ora, poiché questo modello è così comune che abbiamo una sorta di indice e lo aumentiamo ogni volta che
‫seguiamo il ciclo.
‫In realtà c'è una scorciatoia per questo in C++ e se digiti nel codice di Visual Studio, qui c'è un
‫frammento per un ciclo a quattro che puoi espandere e puoi vedere che questa è una struttura generale.
‫Ha qualcosa chiamato taglia T qui.
‫Possiamo semplicemente sostituirlo con INT 32 per i nostri scopi.
‫E essenzialmente ciò che sta dicendo è che ci sono tre affermazioni all'interno delle parentesi del ciclo for.
‫Il primo è equivalente a dove impostiamo la nostra variabile di indice prima del nostro ciclo while.
‫La seconda è la condizione che è equivalente a ciò che mettiamo all'interno del nostro ciclo while.
‫E puoi vedere che potremmo sostituire il conteggio con il punto num degli attori.
‫E poi l'ultimo bit è fondamentalmente il vantaggio in più se lo metti prima o dopo,
‫l'indice non è troppo importante, ma puoi vedere che questo sta aumentando il valore nell'indice.
‫Quindi è equivalente alla linea che mettiamo alla fine del nostro ciclo.
‫Quindi questo riunisce tutto in una riga ciò che dovevamo distribuire su più utilizzando il nostro
‫loop selvaggio.
‫Quindi ecco una semplice sfida per te.
‫Converti il tuo ciclo waah in un ciclo for.
‫Stai per copiare e il corpo del codice cambierà l'indice da quel nome index a I.
‫In genere usiamo l'abbreviazione nei cicli for di I solo un'abbreviazione per index davvero e compiliamo
‫e testiamo i video.
‫Bene.
‫Ben tornato.
‫Quindi questo dovrebbe essere abbastanza semplice.
‫Non vogliamo l'indice più più qui dentro.
‫Quindi taglieremo il resto.
‫Un cambiamento su dove stiamo indicizzando l'array degli attori con la variabile index.
‫Lo cambieremo in IE la variabile.
‫È disponibile solo all'interno di questo ciclo for.
‫Questo è un altro vantaggio rispetto alla sintassi del ciclo completo è che la variabile IE è disponibile
‫solo all'interno del ciclo completo, mentre quando l'abbiamo dichiarata qui nel ciclo while, è
‫disponibile all'esterno, il che inquina gli indici che possiamo utilizzare in seguito in modo da poter eliminare quel loop selvaggio.
‫E puoi vedere che il ciclo completo è molto più condensato e ti abituerai alla sintassi
‫leggermente strana che ha.
‫Andiamo avanti e compiliamo e controlliamo solo che svolga effettivamente lo stesso lavoro.
‫Se vado a prendere il mio gargoyle e arrivo agli attori sovrapposti, puoi vedere che in effetti sta stampando
‫entrambi i nostri attori quando siamo entrambi sovrapposti nell'alcova.
‫Roba fantastica.
‫Quindi in questa lezione abbiamo visto una nuova idea di programmazione, l'idea dei loop, e ci siamo imbattuti in
‫particolare nel ciclo Y e nel ciclo for.
‫Ci vediamo alla prossima lezione.