﻿1
00:00:04,120 --> 00:00:04,630
‫Bene.

2
00:00:04,630 --> 00:00:08,980
‫Quindi il nostro obiettivo per questo video è implementare la morte per i nostri Pons.

3
00:00:08,980 --> 00:00:17,020
‫Quindi, se vengo colpito un paio di volte dalla nostra torre, vedrai che sono scomparso perché il mio carro armato è

4
00:00:17,020 --> 00:00:17,770
‫morto.

5
00:00:17,770 --> 00:00:23,650
‫E se sono abbastanza abile, se posso andare avanti e distruggerne uno, vedrai che anche lui

6
00:00:23,650 --> 00:00:24,220
‫scompare.

7
00:00:24,220 --> 00:00:29,200
‫Quindi implementeremo la morte per queste pedine in questo video.

8
00:00:29,290 --> 00:00:31,240
‫Ciao e bentornato.

9
00:00:31,270 --> 00:00:36,790
‫Ora stiamo già applicando danni alle pedine quando vengono colpite dai proiettili.

10
00:00:36,790 --> 00:00:40,600
‫Ora dobbiamo capire come ci comporteremo dopo la morte.

11
00:00:40,600 --> 00:00:45,910
‫Ciò significa che avremo bisogno di una sorta di funzione per gestire la distruzione di un particolare attore.

12
00:00:45,910 --> 00:00:49,030
‫Quindi creeremo una funzione di distruzione degli handle.

13
00:00:49,030 --> 00:00:55,510
‫Abbiamo anche bisogno di un attore morto per funzionare, il che può consentire alla modalità di gioco di gestire ciò che accade

14
00:00:55,510 --> 00:01:01,480
‫quando un attore nel nostro mondo muore e chiameremo questo attore morto funzione quando il valore della salute raggiunge lo

15
00:01:01,480 --> 00:01:03,340
‫zero per una particolare pedina.

16
00:01:03,340 --> 00:01:07,630
‫Quindi parliamo un po' di una tabella di marcia su come implementeremo questo sistema.

17
00:01:07,630 --> 00:01:14,080
‫Sappiamo che abbiamo un proiettile e sta chiamando applica danno e questo si traduce nella funzione di presa

18
00:01:14,080 --> 00:01:18,610
‫del danno che risponde a quella trasmissione del delegato nel componente salute.

19
00:01:18,610 --> 00:01:21,100
‫Quindi dobbiamo capire cosa fare da lì.

20
00:01:21,100 --> 00:01:26,230
‫Bene, la nostra modalità di gioco può avere una funzione da gestire quando un attore muore.

21
00:01:26,230 --> 00:01:30,370
‫Quindi, nel danno subito, possiamo controllare se la salute raggiunge lo zero.

22
00:01:30,370 --> 00:01:37,210
‫E a quel punto possiamo chiamare l'attore morto funzione sulla modalità di gioco e da lì la nostra pedina può

23
00:01:37,210 --> 00:01:38,440
‫gestirne la distruzione.

24
00:01:38,440 --> 00:01:44,500
‫Quindi alla fine spetterà alla modalità di gioco chiamare la funzione di distruzione del manico sull'attore che è

25
00:01:44,500 --> 00:01:45,010
‫morto.

26
00:01:45,010 --> 00:01:49,660
‫Quindi abbiamo un po' di un piano di gioco, quindi delineiamo i passaggi da intraprendere per implementarlo.

27
00:01:49,660 --> 00:01:54,400
‫Per prima cosa, creeremo la funzione di distruzione della maniglia e la posizioneremo sulla classe di pedone

28
00:01:54,400 --> 00:01:58,900
‫di base per gestire la funzionalità che dovrebbe verificarsi quando una delle nostre pedine muore.

29
00:01:58,900 --> 00:02:04,090
‫E lo implementeremo anche nelle classi tank e tower, poiché ciascuna di esse avrà la propria

30
00:02:04,090 --> 00:02:09,520
‫funzionalità unica quando morirà, quindi creeremo una funzione attore morto e la posizioneremo nella classe della modalità di

31
00:02:09,520 --> 00:02:13,090
‫gioco in modo da poterlo chiama la distruzione dell'handle da lì.

32
00:02:13,090 --> 00:02:18,730
‫Dopodiché chiameremo handle distruzione nella funzione attore morto nella modalità di gioco e quindi possiamo

33
00:02:18,730 --> 00:02:23,320
‫chiamare attore morto dal componente salute quando la salute raggiunge lo zero.

34
00:02:23,320 --> 00:02:27,640
‫Quindi iniziamo con il nostro primo passaggio creando la funzione di distruzione degli handle.

35
00:02:27,640 --> 00:02:33,430
‫Quindi sono qui in Base Pond H e vorrei aggiungere questa funzione di distruzione della maniglia.

36
00:02:33,430 --> 00:02:38,740
‫Ora ho intenzione di chiamarlo dalla modalità di gioco, il che significa che dovrà essere una funzione

37
00:02:38,740 --> 00:02:42,850
‫pubblica in modo da poter posizionare questa funzione qui nella sezione pubblica.

38
00:02:42,940 --> 00:02:46,840
‫Sarà nulla e lo chiamerò gestire la distruzione.

39
00:02:47,890 --> 00:02:50,710
‫Ora, non ha bisogno di prendere alcun parametro di input.

40
00:02:50,860 --> 00:02:55,360
‫Gestirà semplicemente la distruzione di questa particolare pedina.

41
00:02:55,360 --> 00:03:01,840
‫Quindi implementiamo questa funzione nel file CP del pedone di base e lo posizionerò proprio qui sotto

42
00:03:01,840 --> 00:03:02,770
‫il costruttore.

43
00:03:02,770 --> 00:03:09,550
‫Quindi ho la distruzione dell'handle e inserirò il nome della classe del pedone di base appena prima del nome della funzione

44
00:03:09,550 --> 00:03:10,180
‫qui.

45
00:03:10,180 --> 00:03:15,640
‫Ora questo accadrà quando una qualsiasi delle pedine basate sulla pedina base muore.

46
00:03:15,640 --> 00:03:21,040
‫Quindi inserirò qui un'attività che dice cosa faremo nella funzione di distruzione del manico.

47
00:03:21,040 --> 00:03:26,800
‫Mi piacerebbe gestire tutti gli effetti visivi e sonori qui che hanno a che fare con la morte del pedone.

48
00:03:26,800 --> 00:03:32,860
‫Quindi dirò solo effetti sonori visivi slash e lo lasceremo così e ci assicureremo di ricordarci di

49
00:03:32,860 --> 00:03:38,320
‫implementarlo quando arriveremo agli effetti speciali e ai suoni che fanno parte di questa sezione del

50
00:03:38,320 --> 00:03:38,920
‫corso.

51
00:03:38,920 --> 00:03:44,890
‫Ora abbiamo qui la distruzione della maniglia, ma vorrei anche inserire una funzione di distruzione della maniglia in

52
00:03:44,890 --> 00:03:50,050
‫entrambe le classi tank e tower per gestire cosa succede quando quelle pedine muoiono.

53
00:03:50,050 --> 00:03:54,670
‫E l'implementazione più semplice della distruzione sarà forse per la nostra torre.

54
00:03:54,670 --> 00:04:00,760
‫Quindi entriamo nella Torre H e qui aggiungeremo una funzione pubblica chiamata handle distruzione.

55
00:04:00,760 --> 00:04:09,130
‫Quindi dirò void handle distruzione e implementerò questo e torrerò CP appena sotto la funzione

56
00:04:09,130 --> 00:04:10,060
‫tick.

57
00:04:10,060 --> 00:04:17,440
‫Quindi ecco spuntare qui è gestire la distruzione e ho intenzione di anteporre il nome della funzione con una torre proprio come

58
00:04:17,440 --> 00:04:18,130
‫quella.

59
00:04:18,130 --> 00:04:24,280
‫Ora nella funzione di distruzione della maniglia per la torre, vorrei chiamare la versione super in modo che venga chiamata la

60
00:04:24,280 --> 00:04:29,800
‫distruzione della maniglia nel pedone di base e otterremo quegli effetti visivi e sonori quando una torre muore.

61
00:04:29,800 --> 00:04:35,650
‫Quindi dirò che super gestisci la distruzione solo per assicurarmi che venga chiamato.

62
00:04:35,650 --> 00:04:39,040
‫E dopo, distruggerò semplicemente la torre.

63
00:04:39,040 --> 00:04:40,390
‫Ora abbiamo visto come funziona.

64
00:04:40,390 --> 00:04:45,820
‫Chiamiamo semplicemente la funzione di distruzione e questa gestirà la distruzione della torre.

65
00:04:45,820 --> 00:04:52,960
‫Quindi posso salvare questo e chiudere i file tower e CP e ora posso inserire una funzione di distruzione

66
00:04:52,960 --> 00:04:54,910
‫della maniglia nella classe tank.

67
00:04:54,910 --> 00:05:01,570
‫Quindi andrò a tank e dichiarerò una funzione pubblica qui sotto la funzione tick chiamata

68
00:05:01,570 --> 00:05:02,620
‫handle distruzione.

69
00:05:03,640 --> 00:05:10,870
‫E andrò su Tank CP e implementerò questo proprio sotto il tic qui, senza dimenticare di anteporre al

70
00:05:10,870 --> 00:05:13,360
‫nome della funzione un tank.

71
00:05:13,510 --> 00:05:17,950
‫Ora, proprio come nella classe della torre, vorremmo chiamare distruzione del super manico.

72
00:05:19,300 --> 00:05:22,120
‫E in questo modo otterremo quegli effetti visivi e sonori.

73
00:05:22,150 --> 00:05:24,910
‫Ora per il carro armato, faremo qualcosa di leggermente diverso.

74
00:05:24,940 --> 00:05:27,700
‫Vorrei nascondere il carro armato piuttosto che distruggerlo.

75
00:05:27,700 --> 00:05:33,730
‫E poi possiamo disabilitare la sua funzionalità TIC in modo che esista ancora nel mondo e lo possederemo ancora.

76
00:05:33,730 --> 00:05:35,740
‫Quindi otteniamo ancora quella vista dalla telecamera.

77
00:05:35,770 --> 00:05:38,610
‫Solo che non saremo in grado di vederlo o spostarlo.

78
00:05:38,620 --> 00:05:47,710
‫Quindi per nascondere il tank possiamo chiamare una funzione chiamata set attore nascosto nel gioco e questo prenderà un booleano.

79
00:05:47,710 --> 00:05:51,400
‫E se passiamo in true allora nasconderemo efficacemente il carro armato.

80
00:05:51,430 --> 00:05:55,420
‫Ora vorrei anche disabilitare il ticchettio e c'è anche una funzione per quello.

81
00:05:55,420 --> 00:05:58,810
‫Si chiama set attore tic abilitato.

82
00:05:59,770 --> 00:06:05,260
‫E per questo passerò in false, il che disabiliterà il ticchettio per il serbatoio.

83
00:06:05,260 --> 00:06:08,800
‫Quindi questo si occupa della nostra funzione di distruzione della maniglia.

84
00:06:08,800 --> 00:06:11,590
‫Quindi abbiamo la nostra funzione di distruzione della maniglia.

85
00:06:11,620 --> 00:06:16,020
‫Il nostro prossimo passo è creare una funzione attore morto nella modalità di gioco.

86
00:06:16,030 --> 00:06:17,440
‫Quindi implementiamolo.

87
00:06:17,440 --> 00:06:25,870
‫Quindi sono qui nella modalità di gioco dei carri armati e qui posso creare la funzione attore morto ora ho intenzione di chiamare

88
00:06:25,870 --> 00:06:32,200
‫attore morto dalla classe componente salute, il che significa che anche questa deve essere una funzione pubblica.

89
00:06:32,440 --> 00:06:37,590
‫Quindi aggiungerò una sezione pubblica e creerò la funzione attore morto.

90
00:06:37,600 --> 00:06:40,930
‫Ora questo sarà nullo e lo chiamerò attore morto.

91
00:06:41,170 --> 00:06:48,460
‫E questo può semplicemente richiedere un puntatore di un attore chiamato Dead Actor e ora possiamo implementare l'attore morto nella modalità di gioco

92
00:06:48,460 --> 00:06:49,740
‫dei carri armati.

93
00:06:50,110 --> 00:06:58,690
‫CP Quindi lo metto qui e prefisso il nome con una modalità di gioco di carri armati e ora abbiamo una funzione

94
00:06:58,690 --> 00:07:00,220
‫di attore morto.

95
00:07:00,220 --> 00:07:05,890
‫Ora vorrei controllare se l'attore morto è il tank, il che significa che avrò bisogno di una variabile

96
00:07:05,890 --> 00:07:07,030
‫per il tank.

97
00:07:07,030 --> 00:07:09,460
‫Quindi torna alla modalità di gioco dei carri armati.

98
00:07:09,460 --> 00:07:16,540
‫Creerò una sezione privata e aggiungerò una variabile tank che andrò a

99
00:07:16,540 --> 00:07:17,290
‫dichiarare.

100
00:07:17,290 --> 00:07:23,290
‫Ed è di tipo A tank pointer e lo chiamerò semplicemente tank e avrò bisogno di inizializzarlo

101
00:07:23,290 --> 00:07:27,760
‫con l'indirizzo del tank pond, e posso farlo e iniziare a giocare.

102
00:07:27,760 --> 00:07:33,640
‫Ora abbiamo visto che l'inizio del gioco è una funzione protetta e la manterremo protetta qui nella modalità di

103
00:07:33,640 --> 00:07:36,400
‫gioco in modo da poter ignorare, iniziare, giocare.

104
00:07:36,400 --> 00:07:44,580
‫Quindi dirò vuoto virtuale, inizia, gioca, annulla e posso implementarlo qui in carri armati, modalità di gioco.

105
00:07:44,860 --> 00:07:45,610
‫Sì.

106
00:07:45,640 --> 00:07:52,840
‫Quindi sarà vuoto iniziare a giocare e userò i carri armati, il nome della classe della modalità di gioco.

107
00:07:52,990 --> 00:07:56,110
‫E la prima cosa che farò è chiamare Super Begin Play.

108
00:07:57,550 --> 00:08:03,040
‫In questo modo otteniamo la funzionalità genitore e posso ottenere la pedina del giocatore usando le statistiche di gioco.

109
00:08:03,040 --> 00:08:10,660
‫Quindi includerò prima le statistiche di gioco e questo è nelle statistiche di gioco kismet slash come abbiamo

110
00:08:10,660 --> 00:08:11,680
‫già visto.

111
00:08:11,800 --> 00:08:17,290
‫E qui posso prendere Tank e assegnargli il valore della statica di gioco giovanile.

112
00:08:18,230 --> 00:08:19,550
‫Palma del chitarrista.

113
00:08:20,360 --> 00:08:26,390
‫Ora, questo richiede un oggetto di contesto mondiale per il quale possiamo usarlo, e userò zero come indice

114
00:08:26,390 --> 00:08:30,200
‫del giocatore poiché il nostro carro armato sarà sempre giocatore zero.

115
00:08:30,200 --> 00:08:37,430
‫Ora sappiamo che il jet player -- restituisce un puntatore A -- e il tank è di tipo A tank, una classe figlio.

116
00:08:37,430 --> 00:08:43,910
‫E abbiamo visto che dobbiamo eseguire il cast di una classe tank se vogliamo memorizzare questo risultato in un puntatore tank

117
00:08:43,910 --> 00:08:44,510
‫A.

118
00:08:44,510 --> 00:08:47,450
‫Quindi prima includerò l'intestazione del serbatoio.

119
00:08:47,450 --> 00:08:53,330
‫Quindi dirò includi tank H e poi lancerò su un tank.

120
00:08:53,390 --> 00:09:00,440
‫Quindi dirò cast a un tank e lancio il valore restituito da get player --.

121
00:09:00,440 --> 00:09:02,900
‫Quindi lo metterò tra parentesi qui.

122
00:09:03,260 --> 00:09:08,720
‫E ora avremo un puntatore al giocatore -- sotto forma di un puntatore del serbatoio A.

123
00:09:08,720 --> 00:09:14,090
‫Quindi ora che abbiamo il carro armato, possiamo controllare se il nostro attore morto è il carro armato.

124
00:09:14,090 --> 00:09:21,800
‫Quindi possiamo dire che se l'attore morto double è uguale a tank ora tank potrebbe essere nullo.

125
00:09:21,800 --> 00:09:28,940
‫E va bene perché se Tank è null e l'attore morto si riferisce al tank stesso, questo fallirà il controllo

126
00:09:28,940 --> 00:09:34,130
‫if e non tenteremo effettivamente di accedere a un puntatore nullo perché non arriveremo all'interno

127
00:09:34,130 --> 00:09:35,060
‫di questo.

128
00:09:35,060 --> 00:09:41,900
‫Ora, se l'attore morto è in realtà il carro armato, allora vorrei chiamare la funzione di distruzione della maniglia del carro armato.

129
00:09:41,900 --> 00:09:44,870
‫Quindi chiameremo distruzione della maniglia del carro armato.

130
00:09:45,680 --> 00:09:52,100
‫Ora, dopo aver chiamato la funzione di distruzione dell'handle, vorrei anche disabilitare l'input per il tank pod

131
00:09:52,100 --> 00:09:58,550
‫in modo da poter ottenere il tank e chiamare la funzione incorporata che il tank eredita chiamata disable input.

132
00:09:59,540 --> 00:10:03,200
‫Ora disabilitare l'input richiede un controller del giocatore A.

133
00:10:03,200 --> 00:10:10,430
‫Ora sappiamo che la classe tank, se veniamo qui nel tank H ha questa variabile ref del controller del giocatore, che è

134
00:10:10,430 --> 00:10:17,270
‫un puntatore a un controller del giocatore, motivo per cui sto iniziando a pensare che ref sia un nome molto

135
00:10:17,270 --> 00:10:19,160
‫orribile per questa variabile .

136
00:10:19,160 --> 00:10:21,320
‫Dal momento che non è un riferimento, è un puntatore.

137
00:10:21,320 --> 00:10:24,260
‫Quasi preferirei chiamarlo controller del giocatore di carri armati.

138
00:10:24,350 --> 00:10:27,200
‫Quindi, in effetti, perché non andiamo avanti e rinominiamo questo?

139
00:10:27,200 --> 00:10:33,530
‫Questo è qualcosa che gli sviluppatori fanno spesso quando si rendono conto di aver assegnato una variabile, una cattiva reputazione.

140
00:10:33,530 --> 00:10:36,290
‫Quindi questo codice ha un modo per farlo facilmente.

141
00:10:36,290 --> 00:10:42,350
‫Posso evidenziare questa variabile e premere il tasto F due e mi chiede di rinominarla.

142
00:10:42,590 --> 00:10:45,710
‫Chiamerò questo controller del giocatore di carri armati.

143
00:10:46,100 --> 00:10:47,480
‫Ora controlla questo.

144
00:10:47,480 --> 00:10:49,790
‫Si chiama Tank Player Controller qui.

145
00:10:49,790 --> 00:10:54,350
‫Se vado a Tank CP, vedrò che anche qui è stato rinominato.

146
00:10:54,350 --> 00:11:00,530
‫Quindi non dovevo andare a cercarlo e trovare ogni istanza di player, controller, ref.

147
00:11:00,530 --> 00:11:06,050
‫Posso cercare il controller del giocatore di carri armati e vedere che è cambiato ovunque sia usato qui.

148
00:11:06,050 --> 00:11:08,960
‫Quindi è una bella abilità di refactoring da avere.

149
00:11:08,960 --> 00:11:15,650
‫Quindi, comunque, qui nella modalità di gioco dei carri armati, ho bisogno di disabilitare l'input per il carro armato e questo richiede

150
00:11:15,650 --> 00:11:17,180
‫un controller del giocatore.

151
00:11:17,360 --> 00:11:23,360
‫Quindi prima verificherò per assicurarmi che il controller del giocatore del carro armato sia valido dicendo se il carro armato e ho

152
00:11:23,360 --> 00:11:25,550
‫bisogno di accedere a quel controller del giocatore.

153
00:11:25,550 --> 00:11:30,440
‫Ma ricorda che in tank, la nostra variabile del controller del giocatore è privata.

154
00:11:30,440 --> 00:11:36,860
‫Ora potremmo esporlo e renderlo pubblico, oppure potremmo creare una funzione getter pubblica per questa variabile.

155
00:11:36,860 --> 00:11:40,340
‫Preferirei fare un getter pubblico in quanto è una migliore pratica di programmazione.

156
00:11:40,340 --> 00:11:46,610
‫Quindi, qui nella sezione pubblica, creerò un getter pubblico per il controller del giocatore di carri armati.

157
00:11:46,610 --> 00:11:53,300
‫Ora restituirà un puntatore del controller del giocatore A e questa funzione verrà chiamata

158
00:11:53,630 --> 00:11:55,340
‫get tank player.

159
00:11:55,340 --> 00:12:02,900
‫I getter del controller sono in genere il nome della variabile con get in primo piano, e in genere hanno anche

160
00:12:02,900 --> 00:12:09,830
‫un costo in quanto questa funzione non è progettata per modificare nulla in questa classe, restituirà solo il controller

161
00:12:09,830 --> 00:12:10,970
‫del giocatore.

162
00:12:10,970 --> 00:12:16,760
‫Quindi diremo di restituire il controller del giocatore di carri armati e questo è tutto ciò che farà.

163
00:12:16,760 --> 00:12:22,760
‫Quindi ora che abbiamo una funzione getter pubblica per il controller del giocatore del carro armato, possiamo accedere al

164
00:12:22,760 --> 00:12:25,640
‫controller del giocatore qui dalla modalità di gioco.

165
00:12:25,880 --> 00:12:33,080
‫Quindi diremo se il carro armato ottiene un controller del giocatore di carro armato e fa chiamare quella funzione qui.

166
00:12:33,080 --> 00:12:38,450
‫E se raggiungiamo l'interno di questa istruzione if, allora il controller del giocatore è valido,

167
00:12:38,450 --> 00:12:45,590
‫quindi possiamo spostare questa chiamata all'input disabilitato del carro armato proprio qui e passeremo all'input disabilitato il controller del giocatore del

168
00:12:45,590 --> 00:12:46,400
‫carro armato.

169
00:12:48,400 --> 00:12:51,950
‫Quindi chiameremo anche tank get player controller qui.

170
00:12:51,970 --> 00:12:57,910
‫Ora, mentre accediamo al controller del giocatore, vorrei anche prendere i controller del giocatore per

171
00:12:57,910 --> 00:13:03,640
‫mostrare la variabile membro booleana del cursore del mouse e impostarlo su false.

172
00:13:03,640 --> 00:13:08,830
‫Quindi stiamo disabilitando l'input e ci stiamo anche assicurando che il cursore del mouse non sia mostrato.

173
00:13:08,830 --> 00:13:13,400
‫In modo che si occupi della gestione della funzionalità per quando il serbatoio muore.

174
00:13:13,420 --> 00:13:19,660
‫Ora, nel caso in cui l'attore morto non sia il carro armato, mi piace controllare per vedere se è

175
00:13:19,660 --> 00:13:21,010
‫un'istanza della classe torre.

176
00:13:21,010 --> 00:13:23,200
‫Quindi ho intenzione di aggiungere un altro se qui.

177
00:13:23,320 --> 00:13:26,410
‫Quindi quale sarà il condizionale per quest'altro se qui?

178
00:13:26,440 --> 00:13:33,640
‫Bene, mi piacerebbe vedere se l'attore morto può essere scelto per una torre A, il che significa che dovrò includere

179
00:13:34,360 --> 00:13:35,800
‫la classe torre.

180
00:13:35,890 --> 00:13:37,300
‫Quindi includi la torre.

181
00:13:38,170 --> 00:13:40,270
‫E poi proverò a lanciare.

182
00:13:40,270 --> 00:13:44,770
‫Quindi dirò cast, che prende parentesi angolari e parentesi.

183
00:13:44,770 --> 00:13:50,410
‫E anche quello che stiamo lanciando è una torre e quello che stiamo lanciando è morto.

184
00:13:50,410 --> 00:13:53,410
‫L'attore tenterà di scegliere l'attore morto.

185
00:13:53,410 --> 00:13:59,410
‫Ora possiamo effettivamente prendere il risultato di questo cast, assegnarlo e creare una variabile locale.

186
00:13:59,410 --> 00:14:09,310
‫Qui nel condizionale possiamo dire un puntatore di torre e possiamo chiamare questa torre distrutta e assegnarle il valore

187
00:14:09,310 --> 00:14:11,470
‫restituito da questo cast.

188
00:14:11,470 --> 00:14:18,250
‫E se lo facciamo, allora abbiamo accesso a questo attore distrutto, che è il nostro attore morto lanciato su una

189
00:14:18,250 --> 00:14:18,660
‫torre.

190
00:14:18,670 --> 00:14:22,630
‫Ora, se questo ha successo, arriveremo all'interno dell'altro.

191
00:14:22,630 --> 00:14:24,670
‫E poi possiamo prendere il nostro distrutto.

192
00:14:25,490 --> 00:14:31,430
‫Tower e possiamo semplicemente chiamare la distruzione del manico.

193
00:14:32,870 --> 00:14:39,800
‫Quindi ora abbiamo una funzione di attore morto qui nella modalità di gioco che chiama la gestione della distruzione e

194
00:14:39,800 --> 00:14:43,910
‫gestisce anche alcune funzionalità relative alla morte per il carro armato.

195
00:14:44,180 --> 00:14:45,980
‫Quindi questo si occupa del passaggio due.

196
00:14:45,980 --> 00:14:52,220
‫La creazione di un attore morto funzione e mentre eravamo lì abbiamo anche chiamato maniglia distruzione nella

197
00:14:52,220 --> 00:14:53,540
‫funzione attore morto.

198
00:14:53,540 --> 00:14:58,150
‫Quindi il nostro ultimo passo è chiamare l'attore morto quando la salute raggiunge lo zero.

199
00:14:58,160 --> 00:15:04,310
‫Ora, per chiamare questa funzione che esiste nella modalità di gioco, il nostro componente di salute avrà bisogno di una

200
00:15:04,340 --> 00:15:07,250
‫variabile che memorizzi l'indirizzo della modalità di gioco.

201
00:15:07,250 --> 00:15:10,340
‫Quindi entriamo nella nostra classe dei componenti della salute.

202
00:15:10,340 --> 00:15:16,100
‫Ecco i componenti della salute e aggiungerò una variabile privata qui proprio in fondo.

203
00:15:16,100 --> 00:15:25,730
‫E questo sarà di tipo A puntatore della modalità di gioco dei carri armati e lo chiameremo modalità di gioco dei carri armati.

204
00:15:25,730 --> 00:15:31,010
‫Ora lo dichiarerò in avanti, quindi non devo includere il suo file di intestazione qui e quindi dobbiamo

205
00:15:31,010 --> 00:15:32,480
‫accedere alla modalità di gioco.

206
00:15:32,480 --> 00:15:38,990
‫Quindi andiamo alla componente salute CP e se scorro verso l'alto, vedo la funzione di inizio del gioco qui ed è il

207
00:15:38,990 --> 00:15:41,690
‫posto perfetto per controllare la modalità di gioco.

208
00:15:41,690 --> 00:15:44,840
‫Ancora una volta, inserirlo nel costruttore è troppo presto.

209
00:15:44,840 --> 00:15:50,530
‫Dobbiamo assicurarci che la modalità di gioco sia stata costruita ed esista prima di provare ad accedervi.

210
00:15:50,540 --> 00:15:57,200
‫Ora ecco una pratica funzione sulle statistiche di gioco chiamata Ottieni modalità di gioco e dice che restituisce la base della modalità

211
00:15:57,200 --> 00:16:01,610
‫di gioco corrente o null se non può essere recuperata come sul client.

212
00:16:01,850 --> 00:16:07,730
‫Ora il client ha a che fare con la programmazione multiplayer e non dobbiamo preoccuparcene.

213
00:16:07,730 --> 00:16:14,930
‫Stiamo girando sull'unica macchina per il nostro gioco, quindi scorriamo verso il basso e vedremo che una modalità di

214
00:16:14,930 --> 00:16:18,230
‫gioco base prende un oggetto di contesto mondiale.

215
00:16:18,230 --> 00:16:24,080
‫Questo è solo un oggetto nel mondo e abbiamo visto come gestire gli oggetti del contesto mondiale.

216
00:16:24,080 --> 00:16:29,030
‫Quindi questo esiste nel gameplay statico h, quindi includiamolo.

217
00:16:29,030 --> 00:16:35,330
‫E qui nei componenti della salute, CP incollerà la nostra inclusione per le statistiche di gioco e quindi chiameremo la modalità

218
00:16:35,330 --> 00:16:37,490
‫di gioco qui e inizieremo a giocare.

219
00:16:37,790 --> 00:16:40,670
‫Quindi diremo carri armati, modalità di gioco.

220
00:16:42,030 --> 00:16:44,380
‫E impostalo sul valore di te.

221
00:16:44,400 --> 00:16:50,940
‫Le statistiche di gioco ottengono la modalità di gioco e l'oggetto contesto mondiale.

222
00:16:50,940 --> 00:16:54,750
‫Passerò in questo e ora abbiamo la modalità di gioco.

223
00:16:54,750 --> 00:17:01,080
‫Ma ovviamente ottieni la modalità di gioco, restituisce una modalità di gioco di base e stiamo tentando di memorizzarla

224
00:17:01,080 --> 00:17:06,810
‫nella classe figlio, una modalità di gioco di carri armati, il che significa che dovremo lanciare.

225
00:17:06,810 --> 00:17:07,380
‫Giusto.

226
00:17:07,380 --> 00:17:17,580
‫Quindi dobbiamo dire cast a una modalità di gioco tune tank e stiamo lanciando il risultato della modalità di gioco get.

227
00:17:17,580 --> 00:17:20,430
‫Quindi lo metterò tra parentesi lì.

228
00:17:20,430 --> 00:17:22,410
‫E stiamo usando la modalità di gioco dei carri armati.

229
00:17:22,410 --> 00:17:24,840
‫Quindi includerò quel file di intestazione in alto.

230
00:17:24,840 --> 00:17:26,970
‫Quindi dirò include.

231
00:17:28,960 --> 00:17:32,120
‫Tune Tanks modalità di gioco.

232
00:17:33,100 --> 00:17:36,960
‫Quindi abbiamo la modalità di gioco qui nella componente salute.

233
00:17:36,970 --> 00:17:44,080
‫Siamo pronti a scendere quaggiù nei danni subiti e controllare se la nostra salute raggiunge lo zero.

234
00:17:44,140 --> 00:17:52,060
‫E in tal caso possiamo usare il nostro puntatore della modalità di gioco dei carri armati per chiamare la funzione che l'attore

235
00:17:52,060 --> 00:17:59,740
‫è morto passando l'attore che è morto e questa sarà la tua sfida, quindi nella classe dei componenti della salute in danno

236
00:17:59,740 --> 00:18:06,910
‫subito controllerai per vedere se il valore della salute ha raggiunto lo zero o è sceso sotto lo zero.

237
00:18:06,940 --> 00:18:11,260
‫In tal caso, l'attore della chiamata è morto utilizzando la modalità di gioco.

238
00:18:11,260 --> 00:18:17,140
‫Dal momento che abbiamo un puntatore alla modalità di gioco, non dimenticare di controllare prima se questo puntatore non

239
00:18:17,140 --> 00:18:17,800
‫è nullo.

240
00:18:17,800 --> 00:18:21,940
‫E una volta che chiami l'attore morto, dovrai far passare un attore.

241
00:18:21,940 --> 00:18:25,000
‫Passerai l'attore che è morto.

242
00:18:25,000 --> 00:18:30,370
‫Quindi metti in pausa il video e implementalo ora nella funzione danno subito.

243
00:18:33,280 --> 00:18:33,670
‫Bene.

244
00:18:33,670 --> 00:18:36,720
‫Quindi abbiamo già sottratto i danni alla salute.

245
00:18:36,730 --> 00:18:41,220
‫Ora siamo pronti per verificare se quel valore di salute ha raggiunto lo zero.

246
00:18:41,230 --> 00:18:48,610
‫Quindi dirò se la salute è inferiore o uguale a zero F e se è così, allora è

247
00:18:48,610 --> 00:18:49,450
‫appropriato chiamare.

248
00:18:49,480 --> 00:18:55,090
‫L'attore è morto ora perché dobbiamo verificare se la modalità di gioco è valida.

249
00:18:55,090 --> 00:19:02,170
‫Posso inserire un annuncio qui in questo se controllo e controllo per vedere se la modalità di gioco dei carri armati è valida.

250
00:19:02,170 --> 00:19:07,060
‫Se è nullo, verrà restituito false qui e non raggiungeremo l'interno dell'istruzione if.

251
00:19:07,540 --> 00:19:13,600
‫Quindi, se raggiungiamo l'interno dell'istruzione if, la modalità di gioco dei carri armati è valida e la salute ha raggiunto lo

252
00:19:13,600 --> 00:19:14,050
‫zero.

253
00:19:14,050 --> 00:19:16,780
‫Quindi possiamo dire sintonizzare i carri armati, la modalità di gioco.

254
00:19:17,980 --> 00:19:19,900
‫E possiamo dire che l'attore è morto.

255
00:19:20,830 --> 00:19:27,160
‫E questo richiede un attore e sappiamo che l'attore che è morto sarà l'attore danneggiato.

256
00:19:27,160 --> 00:19:29,950
‫Quindi passeremo per attore danneggiato.

257
00:19:30,130 --> 00:19:33,640
‫E ora possiamo compilare questo e guardare quello.

258
00:19:33,640 --> 00:19:35,380
‫Abbiamo una compilazione di successo.

259
00:19:35,380 --> 00:19:37,180
‫Quindi torniamo all'editor.

260
00:19:37,180 --> 00:19:40,690
‫E qui nell'editor, perché non andiamo avanti e testiamo la morte?

261
00:19:40,690 --> 00:19:45,790
‫Vediamo se riesco a distruggere alcuni di questi carri armati prima di essere distrutto io stesso.

262
00:19:45,790 --> 00:19:47,680
‫Sarà una specie di sfida.

263
00:19:47,710 --> 00:19:48,670
‫Oh, ce n'è uno.

264
00:19:48,670 --> 00:19:52,030
‫Ne ho ucciso uno e ho preso il secondo.

265
00:19:52,030 --> 00:19:53,230
‫Oh, e sono morto.

266
00:19:53,650 --> 00:20:01,840
‫Quindi puoi vedere che questo gioco è molto più divertente ora che abbiamo aggiunto morte e distruzione ai nostri stagni.

267
00:20:01,840 --> 00:20:03,550
‫Quindi questo è fantastico.

268
00:20:03,850 --> 00:20:11,050
‫Ok, quindi quello che voglio che tu faccia è darti una pacca sulla spalla, perché in questo video

269
00:20:11,050 --> 00:20:18,010
‫abbiamo trattato la morte dell'attore, che implica un po' di interazione tra queste classi nel nostro gioco.

270
00:20:18,100 --> 00:20:24,370
‫Ora il modo in cui la morte viene implementata è che lo stagno semplicemente scompare, il che significa che abbiamo ancora bisogno di

271
00:20:24,370 --> 00:20:24,940
‫alcune cose.

272
00:20:25,030 --> 00:20:26,890
‫Abbiamo bisogno di condizioni vincenti perse.

273
00:20:26,890 --> 00:20:30,490
‫Abbiamo bisogno di un modo per mostrare al giocatore che ha vinto o perso la partita.

274
00:20:30,490 --> 00:20:33,220
‫E abbiamo anche bisogno di quegli effetti speciali.

275
00:20:33,340 --> 00:20:36,430
‫Abbiamo bisogno di alcuni suoni, abbiamo bisogno di alcune esplosioni.

276
00:20:36,430 --> 00:20:39,520
‫Queste cose arriveranno molto, molto presto.

277
00:20:39,520 --> 00:20:41,170
‫Quindi congratulazioni.

278
00:20:41,170 --> 00:20:46,570
‫Hai già fatto molta strada e mancano solo pochi passi da fare.

279
00:20:46,600 --> 00:20:48,310
‫Ci vediamo nel prossimo video.

