‫Ciao e Benvenuto.
‫In questa lezione, faremo funzionare la condizione di vittoria in modo che io possa uccidere tutti i nemici
‫nel mio livello e mi mostrerà questa schermata di vittoria.
‫HAREL Entriamo e vediamo come si fa.
‫Quindi vorremmo che fosse possibile per il nostro giocatore vincere questa partita.
‫Al momento non possono.
‫Allora come lo faremo?
‫Beh, potresti farlo in diversi modi.
‫Uno di questi sarebbe quando viene chiamato Pawn Killed e il pedone non è il controller di gioco.
‫Ma poi potremmo sottrarre da una variabile che dice quanta aria ci sia nel mondo, quanta ne dobbiamo
‫uccidere.
‫E poi quando questo scende a zero, possiamo concludere la partita a favore del giocatore.
‫Tuttavia, penso che sia un po' fragile perché ci richiede di mettere quanti nemici ci sono nel mondo in
‫due posti essenzialmente deve essere nella modalità di gioco, ma deve anche essere nel mondo quando
‫si posiziona il nemici abbattuti e quei due possono perdere la sincronizzazione, e questo causerà alcuni
‫problemi.
‫Quindi il modo in cui preferirei farlo è semplicemente dire, contiamo tutti i nemici del mondo ogni volta che viene uccisa una pedina, facciamo un
‫riconteggio, un conteggio totale di tutti gli A. IO. e vedere quali sono
‫ancora vivi.
‫Se qualcuno di loro è ancora vivo, allora non finiremo ancora il gioco.
‫Luogo il gioco non è finito.
‫Ma se sono tutti morti e il controller di gioco non lo è, allora il giocatore ha vinto.
‫Quindi, per poterlo fare, dobbiamo avere un modo per interrogare un controller del giocatore se è morto
‫o meno.
‫Scusa, voglio dire, il controller.
‫Quindi cerchiamo il nostro controller sparatutto dot H.
‫E quello che vogliamo fare qui è creare un nuovo metodo pubblico che ci permetta di interrogare se è morto
‫o meno.
‫Quindi faremo un pool basato, è morto e sarà un contrasto perché non dovrebbe cambiare ciò che
‫sta effettivamente accadendo nel controller quando viene chiamato.
‫E possiamo andare avanti e creare un'implementazione.
‫Ora dovremmo controllare un -- che può dirci se è morto o meno.
‫Se andiamo a dare un'occhiata a quello di nuovo, diamo un'occhiata al personaggio dello sparatutto, che è un --.
‫Ricorda, abbiamo già questa funzione di contatto morto lì.
‫Quindi essenzialmente quello che vogliamo fare è semplicemente trasmettere la richiesta al tiratore che controllo ora.
‫Sì.
‫Una cosa è che potresti dire in KML tutte le modalità di gioco, potresti entrare in possesso del
‫controller, entrare in possesso di -- che quello che sta controllando, eseguire un cast e quindi controllare se quello -- è morto.
‫Tuttavia, questa generalmente non è la migliore pratica perché significa che se all'improvviso qualcosa cambia nel
‫modo in cui calcoliamo la morte e/o il controller aereo controllerà diversi tipi di --, all'improvviso dobbiamo cambiare la
‫modalità di gioco, il che non ha senso.
‫Quindi è meglio farlo e fare il passaggio all'interno dei controller dell'aria più robusti.
‫Ci impedisce di giocherellare all'interno della classe di qualcun altro, il che generalmente significa che possiamo limitare quando le
‫cose cambiano, possiamo limitare il numero di classi che dobbiamo andare a toccare e aggiornare e cambiare,
‫il che è sempre una buona cosa.
‫Quindi quello che vorremo fare è ottenere il -- e lanciare il -- per assicurarci che sia un personaggio sparatutto.
‫Quindi facciamo un cast.
‫Sarà per uno sparatutto.
‫Il personaggio e penso che dovremo farlo, deve includere nella parte superiore del controllo visivo per assicurarci di
‫conoscere il personaggio delle riprese in questo modo.
‫E poi faremo il cast facendo un get -- e vorremo memorizzarlo in una variabile in modo
‫che sia uno sparatutto.
‫Puntatore carattere chiamato chiamiamolo controllato.
‫Carattere.
‫Non posso semplicemente chiamarlo carattere perché è già una variabile sul controller aereo e metti un punto e virgola
‫alla fine della riga e verificheremo se questo è nullo o meno.
‫Quindi il carattere di controllo non è uguale al puntatore nullo, quindi dovremmo essere in grado di interrogarlo per il suo stato se è
‫morto o meno.
‫Quindi dovremmo essere in grado di restituire quel personaggio controllato.
‫È morto.
‫Fondamentalmente, inoltriamo la richiesta al nostro personaggio di controllo.
‫Se quel personaggio di controllo è un personaggio sparatutto.
‫Tuttavia, si noti che qui non abbiamo una dichiarazione di reso.
‫Nell'altro caso, abbiamo bisogno di un reso.
‫C'è sempre bisogno di un ritorno.
‫Se il valore restituito non è nullo.
‫Quindi abbiamo bisogno di inserire una dichiarazione di ritorno qui al di fuori dell'istruzione if per catturare il caso in cui
‫non abbiamo già restituito all'interno dell'istruzione if.
‫E qui diremo solo, questo personaggio è morto?
‫Ebbene, sì, essenzialmente, se non è così vero, in fondo è morto.
‫Se non abbiamo un pedone, se non controlliamo un pedone, allora essenzialmente questo controller aereo è
‫praticamente morto per noi.
‫E ciò potrebbe accadere perché ricorda che il pedone si stacca dal suo controller quando muore.
‫Quindi torneremo alla modalità di gioco e cosa vorremo fare qui?
‫In sostanza, quello che vogliamo fare è un ciclo completo su tutti i file i.
‫Il tiratore, i.
‫Nel mondo.
‫E con quello for loop.
‫Cosa vogliamo fare?
‫Vogliamo vedere è morto.
‫Fondamentalmente e o fondamentalmente non è morto.
‫E se qualcuno di loro non è morto, allora sappiamo immediatamente che non dobbiamo assolutamente controllare tutta l'aria.
‫Se anche solo un ragazzo regna vivo, il gioco non è finito.
‫Quindi possiamo fare quello che è noto come un ritorno anticipato, che probabilmente hai già
‫visto prima, che uscirà semplicemente da questa funzione senza eseguire più del codice in essa contenuto.
‫Quindi tutto dopo questo ritorno anticipato smetterà di eseguire il ciclo completo, smetterà di eseguire qualsiasi cosa dopo
‫che smetterà di essere eseguita.
‫Ma poi possiamo dire che se siamo riusciti a superare con successo questo ciclo completo senza che ritorni
‫presto, il che significa che non ci sono alleati viventi nel mondo, allora dobbiamo andare avanti e terminare il gioco.
‫Semplice come quella.
‫Ora, una parte del puzzle che dobbiamo esaminare qui sono le chiamate di fine gioco.
‫Il gioco è terminato sul controller del giocatore.
‫Diamo un'occhiata a come il controller del giocatore sparatutto si occupa attualmente di questo.
‫Se andiamo al suo CP, quello che vediamo attualmente è che sta attualmente ignorando totalmente il vincitore che B sta
‫attualmente ignorando se è o meno il vincitore.
‫Quindi quello che dobbiamo fare è dire se B è il vincitore.
‫Allora faremo qualcos'altro.
‫Mostreremo la nostra schermata di perdita.
‫Quindi taglia queste righe qui che sono responsabili della visualizzazione della schermata di perdita.
‫Mettilo nella dichiarazione out e ricominceremo comunque in entrambi i casi.
‫Quindi attualmente l'essere è vincitore.
‫Cosa faremo?
‫Bene, andremo avanti e probabilmente creeremo anche un parabrezza, il che sarà abbastanza
‫semplice.
‫Passiamo al nostro file di intestazione per le riprese per riprodurre un controller.
‫Possiamo duplicare, perdere la classe dello schermo e creare una classe dello schermo vincente.
‫E qui possiamo anche andare avanti e combattere questo.
‫Una mini sfida per te.
‫Forse vai avanti e impostalo in modo che possa fare una schermata di vincita.
‫Kay, bentornata.
‫Quindi spero che tu ci abbia dato una possibilità.
‫Andremo semplicemente dentro e metteremo il parabrezza qui invece di tutto il testo pubblicitario perso, essenzialmente tutto
‫il resto.
‫Così.
‫Andremo avanti e compileremo questo, quindi andremo nell'editor e ci ritroveremo nella classe del
‫controller del giocatore.
‫E ora dovremmo vedere che c'è una classe di parabrezza vuota.
‫E quello che faremo è andare nell'interfaccia utente e duplicare la schermata di perdita per
‫chiamare il parabrezza.
‫E potresti creare il tuo da zero se lo desideri.
‫Ma lo userò in modo molto simile, tranne per il fatto che cambierò il colore per il verde.
‫E trasformalo in una vittoria invece che in una sconfitta.
‫Perché la logica di riavvio sarà effettivamente la stessa.
‫Per qualche motivo ha ripristinato il mio colore che vado semplicemente a impostare di nuovo lo schermo a colori.
‫Va bene, è fantastico.
‫Ma abbiamo ancora questo pezzo di pseudocodice nella modalità di gioco KML che non è stato compilato.
‫E questo perché è la tua sfida calcolare la vittoria.
‫Compila lo pseudocodice, usa l'intervallo attivo T dal basso in quella classe per aiutarti.
‫Usa la nuova è quella funzione che abbiamo creato sul controller e testala.
‫Controlla se il tuo parabrezza si presenta quando uccidi tutta l'aria del mondo.
‫Quindi lo lascerò con lo pseudocodice sullo schermo per dargli un'occhiata.
‫K Bentornato.
‫Quindi iniziamo con il ciclo for.
‫Quindi ho intenzione di fare un per cosa facciamo per il loop over?
‫Non è un controller questa volta.
‫Sarà il controller aereo sparatutto.
‫Quindi abbiamo bisogno di includerlo nell'hash.
‫Sarà il tiratore.
‫Il controllore aereo Don H.
‫E questo significa che andremo in loop su un negozio di controller di Shooter II
‫per raffreddare semplicemente il controller, i cortometraggi, e poi faremo di nuovo una serie di attori che un controller aereo sparatutto.
‫Dobbiamo fare in modo che questi due tipi corrispondano, quindi ottenere il mondo.
‫Quindi lo stiamo facendo a questo livello.
‫E poi abbiamo il corpo del ciclo completo qui dove ci chiederemo se non è morto.
‫Quindi, in caso contrario, Controller Arrow è morto.
‫Fondamentalmente dicendo assicurati che non siamo morti.
‫E se non è morto, allora andiamo avanti e torniamo a questo ritorno anticipato perché sappiamo che la partita
‫non può ancora essere finita.
‫E altrimenti, se abbiamo superato l'intero ciclo senza tornare, dobbiamo terminare il gioco perché
‫il giocatore deve aver vinto, ucciso tutta l'IA nel livello.
‫Quindi in questo caso, potremmo fare un gioco finale.
‫VERO.
‫Perché il giocatore ne ha uno.
‫E questo dovrebbe notificare a tutti i controller del giocatore e ai controller di volo in giro.
‫Freddo.
‫Quindi andiamo oltre e compiliamolo, prima di tutto.
‫Poi andrò a Unreal e farò una commedia.
‫Per qualche motivo il mio editore pensa che io sia in questa operazione di modifica del colore specificata, quindi
‫la chiuderò e la riavvierò.
‫Ora che è stato avviato gratuitamente, vado avanti e premo play e vengo ucciso.
‫Prima di tutto, sì, perdo ancora.
‫È fantastico.
‫Ora vediamo se riesco a uccidere questo tizio prima che lui uccida me.
‫Andiamo.
‫Boom, boom, boom, boom, boom, boom, boom.
‫Perdo troppo in fretta.
‫Andiamo a trovare di nuovo la pistola e settiamo.
‫Abbiamo quel danno della pistola davvero alto.
‫A scopo di test, questa volta andrò a riportare il danno a forse 20.
‫Quindi è ancora veloce, ma non altrettanto veloce.
‫Vai a giocare e colpisci questo ragazzo un paio di volte.
‫E quello che abbiamo visto è che in realtà ho vinto perché il livello è ricominciato.
‫Quindi se vado e uccido di nuovo questo tizio, vedrai che non sta succedendo niente.
‫Sta dicendo nel registro dei messaggi ciò che è stato chiamato con una classe nulla.
‫E la ragione di ciò, se passiamo a un controller del giocatore sparatutto BP, di nuovo, puoi vedere che non abbiamo
‫collegato il nostro parabrezza.
‫Una cosa che ho dimenticato di fare così posso andare a compilare, salvare e giocare.
‫E ora si spera che se uccido questo ragazzo a un nuovo destino, vinco e ricomincerò tra 5 secondi.
‫E voglio mostrarti che lo stesso è vero.
‫Se metto più controller di giocatori nel mondo, mi verrà richiesto di ucciderli entrambi.
‫Quindi andiamo a portare qui il personaggio dello sparatutto.
‫E questo sarà il mio secondo nemico da uccidere.
‫Quindi uccidi questo ragazzo.
‫Boom.
‫E non ha vinto.
‫Poi vado dal secondo ragazzo.
‫Boom.
‫E ora ne ho uno.
‫Perché ho ucciso tutta l'alfa e non dovevamo cambiare alcuna variabile per farlo.
‫Perché io per loop conta tutti i vivi ogni volta da zero.
‫Quindi attualmente stiamo vivendo in un mondo piuttosto silenzioso.
‫Quindi, nella prossima lezione, voglio iniziare a guardare un po' come possiamo fare un po' di audio.
‫Ci vediamo lì.