﻿1
00:00:04,480 --> 00:00:05,230
‫Ciao e Benvenuto.

2
00:00:05,230 --> 00:00:09,610
‫In questa lezione introdurremo una novità nell'albero del comportamento, i servizi.

3
00:00:09,880 --> 00:00:14,530
‫Scopriremo cosa sono i servizi, come ci aiutano con un comportamento di esecuzione persistente e come

4
00:00:14,530 --> 00:00:16,330
‫possiamo scrivere i nostri in C++.

5
00:00:16,330 --> 00:00:17,170
‫Entriamo subito.

6
00:00:18,150 --> 00:00:23,700
‫Ora ci sono solo pochi pezzi di logica rimasti nel nostro controller aereo che non sono nel nostro albero del comportamento.

7
00:00:24,120 --> 00:00:26,940
‫Uno di questi è l'impostazione della posizione di partenza.

8
00:00:26,970 --> 00:00:29,940
‫Questo voglio ancora impostare qui dal controller dell'aria.

9
00:00:30,600 --> 00:00:35,940
‫Ma cose come tic, ora che vorrei fare dall'interno di un albero del comportamento.

10
00:00:36,390 --> 00:00:38,070
‫Cosa voglio fare qui?

11
00:00:38,130 --> 00:00:39,690
‫Come faccio a farlo.

12
00:00:39,720 --> 00:00:42,150
‫Da aggiungere alla posizione del nostro giocatore.

13
00:00:42,150 --> 00:00:45,510
‫Per aggiornare l'ultima posizione conosciuta del giocatore.

14
00:00:46,260 --> 00:00:51,300
‫Entrambi possiamo fare con qualcosa chiamato servizio di progetto.

15
00:00:51,660 --> 00:00:55,950
‫Quindi andiamo ai nostri progetti e vediamo cosa sta succedendo.

16
00:00:55,980 --> 00:01:03,030
‫Quindi, se vado dal mio alleato e apro l'albero del comportamento, lo parlo con la finestra principale, allora ho bisogno di mostrarti

17
00:01:03,030 --> 00:01:05,040
‫quali servizi abbiamo usato prima.

18
00:01:05,460 --> 00:01:14,190
‫Ed è essenzialmente un modo per eseguire qualcosa ogni volta o ogni tanto ogni volta che un particolare percorso è

19
00:01:14,190 --> 00:01:14,730
‫attivo.

20
00:01:14,760 --> 00:01:22,110
‫Quindi, se avessi un servizio qui sul comportamento Chase, allora qualcosa del codice sarebbe in grado di essere eseguito tutto il tempo in cui il comportamento

21
00:01:22,680 --> 00:01:26,850
‫Chase è attivo, indipendentemente dal fatto che ci muoviamo, scattiamo, soppesiamo una qualsiasi di

22
00:01:26,850 --> 00:01:28,770
‫queste cose, sarebbe sempre in esecuzione.

23
00:01:28,770 --> 00:01:30,990
‫Ma se siamo dentro, indaghiamo, non lo sarebbe.

24
00:01:31,440 --> 00:01:35,520
‫Quindi questo è esattamente il tipo di situazione in cui stiamo cercando di utilizzare un servizio.

25
00:01:35,850 --> 00:01:38,020
‫Ora diamo un servizio di esempio.

26
00:01:38,040 --> 00:01:44,610
‫Una cosa che notiamo quando suoniamo è che una volta che l'aria arriva nel nostro raggio

27
00:01:44,610 --> 00:01:51,440
‫d'azione e ci muoviamo, non si gira per guardarci e possiamo aggiustarlo con un servizio già integrato qui.

28
00:01:51,450 --> 00:01:58,540
‫Quindi fai clic con il pulsante destro del mouse su questa nota e vai su Aggiungi servizio e cerca il servizio di messa a fuoco predefinito.

29
00:01:58,580 --> 00:01:59,970
‫Puoi vedere che è di un colore diverso, è verde.

30
00:02:00,480 --> 00:02:05,310
‫E se selezioniamo quel servizio predefinito, va anche sotto i nodi della sequenza anziché sopra di essi, che è

31
00:02:05,310 --> 00:02:06,630
‫ciò che fanno i decoratori.

32
00:02:07,440 --> 00:02:11,850
‫Quindi, con la messa a fuoco predefinita selezionata, puoi quindi scegliere su cosa concentrarti.

33
00:02:11,850 --> 00:02:14,670
‫In questo caso, vogliamo concentrarci sulla posizione del giocatore.

34
00:02:15,390 --> 00:02:17,220
‫Vai avanti e premi Salva, premi Riproduci.

35
00:02:17,580 --> 00:02:23,070
‫E ora se andiamo a dare un'occhiata e ci muoviamo, puoi vedere che sta ruotando per seguirci.

36
00:02:23,820 --> 00:02:24,540
‫Roba forte.

37
00:02:25,050 --> 00:02:32,100
‫Ora vogliamo essere in grado di implementare un servizio simile in C++ che aggiornerà la posizione del nostro

38
00:02:32,100 --> 00:02:38,760
‫giocatore per tutto il tempo e aggiornerà la nostra ultima posizione del giocatore nota mentre stiamo inseguendo.

39
00:02:38,970 --> 00:02:41,670
‫Quindi lo faremo come due servizi separati.

40
00:02:41,670 --> 00:02:46,620
‫E puoi vedere come questo serva anche automaticamente in quanto può rendere le cose un po'

41
00:02:46,620 --> 00:02:53,910
‫più efficienti rispetto a farlo in tecnologia perché puoi eseguire l'ultima posizione di gioco nota solo quando ti trovi nella parte giusta dell'albero

42
00:02:53,910 --> 00:02:54,690
‫del comportamento.

43
00:02:54,930 --> 00:02:58,110
‫Quindi torniamo al browser dei contenuti Sandbox.

44
00:02:58,110 --> 00:03:02,640
‫Aggiungi una nuova nuova classe C++, mostra tutte le classi e cerca quali sono le nostre opzioni qui.

45
00:03:03,120 --> 00:03:04,950
‫Stiamo cercando un servizio migliore.

46
00:03:04,950 --> 00:03:11,130
‫E poi ci sono un paio di opzioni, proprio come avevamo con B. T. Compito.

47
00:03:11,610 --> 00:03:15,900
‫Abbiamo la Blackboard Base e in realtà vorremo la Blackboard Base perché

48
00:03:15,900 --> 00:03:18,150
‫vogliamo sapere quale chiave dovremmo aggiornare.

49
00:03:18,150 --> 00:03:20,610
‫Ad esempio, dovrebbe essere la posizione del giocatore?

50
00:03:20,610 --> 00:03:22,950
‫Dovrebbe essere l'ultima posizione conosciuta del giocatore?

51
00:03:23,460 --> 00:03:28,800
‫Quindi andremo a fare clic su questo con la Blackboard Base, lo selezioneremo

52
00:03:28,800 --> 00:03:36,240
‫e chiameremo questo servizio beta, sottolineeremo la posizione del giocatore in questo modo e andremo a come creare quella classe.

53
00:03:36,780 --> 00:03:42,960
‫Quindi, una volta terminata la compilazione, andremo nel codice di Visual Studio e puoi vedere che abbiamo

54
00:03:42,960 --> 00:03:48,300
‫questa posizione del lettore di servizi BT che eredita dal Service Blackwood Base Court.

55
00:03:48,330 --> 00:03:49,320
‫Questo è ciò che vogliamo ora.

56
00:03:49,320 --> 00:03:51,630
‫Quale funzionalità sposteremo in questo?

57
00:03:52,140 --> 00:03:58,200
‫Bene, cercherò di spostare la funzionalità più semplice possibile, che è solo quella di impostare il

58
00:03:58,800 --> 00:04:01,590
‫valore dell'ultima posizione conosciuta del giocatore.

59
00:04:01,590 --> 00:04:08,310
‫Anche se questa chiave sarà configurata nell'albero del comportamento, non qui in un testo normale, ma otterrà la posizione

60
00:04:08,310 --> 00:04:12,360
‫del giocatore e la imposterà su una chiave della lavagna.

61
00:04:12,360 --> 00:04:17,580
‫E non farà nessuna delle ragioni del controllo della linea di vista se lo stiamo eseguendo nel nostro albero del

62
00:04:17,580 --> 00:04:21,900
‫comportamento, solo quando stiamo inseguendo che non abbiamo bisogno del controllo della linea di vista.

63
00:04:21,900 --> 00:04:25,230
‫Possiamo vedere il giocatore che è automaticamente sappiamo che è il caso.

64
00:04:25,590 --> 00:04:28,770
‫Quindi un'altra semplificazione per farlo in un servizio.

65
00:04:29,610 --> 00:04:36,570
‫Quindi questo dovrebbe essere abbastanza semplice se sappiamo come ottenere una chiamata al metodo qui nel servizio BT.

66
00:04:37,320 --> 00:04:41,910
‫Quindi andiamo a dare un'occhiata a BT Service Dot per vedere cosa è disponibile lì.

67
00:04:41,910 --> 00:04:43,890
‫Qual è la documentazione, cosa possiamo fare?

68
00:04:44,250 --> 00:04:50,730
‫I metodi principali che puoi vedere qui sono sul diventare rilevanti su C rilevanti il nodo tick e all'inizio della

69
00:04:50,730 --> 00:04:51,090
‫ricerca.

70
00:04:51,090 --> 00:04:51,960
‫All'inizio della ricerca.

71
00:04:51,960 --> 00:04:54,180
‫Non ci interessa particolarmente ma prendi nota.

72
00:04:54,180 --> 00:05:00,630
‫Sì, è qui che riceveremo aggiornamenti ogni volta che questo servizio è su un percorso attivo.

73
00:05:01,170 --> 00:05:02,730
‫Quindi è quello che vorremo implementare.

74
00:05:03,030 --> 00:05:05,640
‫Andiamo a cercare in questo file per trovare la firma completa.

75
00:05:05,640 --> 00:05:07,950
‫Qui possiamo vedere è qui.

76
00:05:07,950 --> 00:05:09,240
‫Vediamo in che sezione si trova.

77
00:05:09,240 --> 00:05:10,530
‫È nella sezione protetta.

78
00:05:10,890 --> 00:05:16,620
‫Quindi andremo a battere il servizio che abbiamo creato e creeremo una sezione protetta.

79
00:05:17,530 --> 00:05:24,160
‫E incolla, è automaticamente un override qui perché BT Service lo stava ereditando da una classe padre, ma

80
00:05:24,160 --> 00:05:27,400
‫non è dannoso sovrascriverlo di nuovo noi stessi.

81
00:05:27,790 --> 00:05:32,890
‫Possiamo fare un control shift P per creare l'implementazione e poi vogliamo chiamare a super.

82
00:05:32,920 --> 00:05:39,220
‫Quindi vogliamo un nodo super tick e vogliamo passare il nostro comp e la nostra memoria del nodo.

83
00:05:39,700 --> 00:05:41,410
‫E vediamo, ci sono altre cose qui dentro.

84
00:05:41,440 --> 00:05:43,210
‫Abbiamo anche un Delta secondi.

85
00:05:43,210 --> 00:05:44,850
‫Questo è ciò che dobbiamo rinunciare anche noi.

86
00:05:44,860 --> 00:05:49,930
‫E infine finire con questo punto e virgola dovrebbe svanire dall'implementazione del nodo tick.

87
00:05:49,960 --> 00:05:54,130
‫Ora qui in pratica vogliamo fare quel comportamento dal controller aereo.

88
00:05:54,130 --> 00:05:59,410
‫CP, quello in cui otteniamo il componente lavagna, quindi impostando un valore come vettore.

89
00:05:59,710 --> 00:06:03,910
‫Bene, sappiamo come ottenere i componenti della lavagna dai riferimenti dei componenti del proprietario.

90
00:06:04,210 --> 00:06:05,370
‫Quindi è abbastanza semplice.

91
00:06:05,380 --> 00:06:11,560
‫Faremo solo il punto di comp del proprietario e poi faremo i componenti di get blackboard ricordando che

92
00:06:11,560 --> 00:06:17,710
‫abbiamo bisogno di includere hash qui per il componente blackboard con barra in avanti dell'albero del comportamento.

93
00:06:18,100 --> 00:06:20,140
‫Quindi possiamo usare il nostro operatore freccia.

94
00:06:20,590 --> 00:06:27,310
‫E quello che dovremmo essere in grado di fare qui è solo impostare il valore come vettore e che abbiamo bisogno di una chiave.

95
00:06:27,310 --> 00:06:30,460
‫Bene, sappiamo come affrontarlo, ma rinfreschiamoci la memoria.

96
00:06:30,460 --> 00:06:36,310
‫Se andiamo al nostro servizio BT underscore Blackboard Base, puoi vedere come per l'attività, abbiamo

97
00:06:36,310 --> 00:06:38,330
‫la chiave della lavagna selezionata.

98
00:06:38,350 --> 00:06:39,070
‫Questo è quello che useremo.

99
00:06:39,400 --> 00:06:44,110
‫Ottieni chiave lavagna selezionata ottiene la chiave che è stata selezionata nell'albero del comportamento.

100
00:06:44,110 --> 00:06:48,520
‫E poi vogliamo il nostro valore vettoriale in cui otterremo esattamente lo stesso valore del controller dell'aria.

101
00:06:48,520 --> 00:06:50,170
‫Prenderemo il pool di giocatori.

102
00:06:50,170 --> 00:06:55,690
‫E prima di tutto, quassù in alto, dobbiamo verificare se questo è nullo o meno.

103
00:06:55,690 --> 00:06:57,790
‫E dobbiamo anche includere quella statica di gioco.

104
00:06:57,790 --> 00:07:00,130
‫Quindi assicuriamoci di avere il gioco.

105
00:07:00,130 --> 00:07:05,920
‫Le statistiche includono dal controller aereo, mantieni inclusa nel nostro lettore una posizione del giocatore di servizio.

106
00:07:06,880 --> 00:07:13,830
‫Quindi faremo e se il giocatore -- è uguale a puntatore nullo, allora vorremo fare di nuovo

107
00:07:13,830 --> 00:07:19,780
‫tornare in anticipo qui restituisce void così possiamo semplicemente fare un rapido ritorno anticipato.

108
00:07:20,200 --> 00:07:30,010
‫Quindi possiamo usare il nostro lettore -- qui per ottenere semplicemente la posizione dell'attore e potremmo aver bisogno di includerlo qui.

109
00:07:30,010 --> 00:07:30,880
‫Vedremo come andremo.

110
00:07:30,880 --> 00:07:34,360
‫Bene, non fa male essere al sicuro, lo fa, ed esplicito su queste cose.

111
00:07:34,360 --> 00:07:40,230
‫Quindi faremo un'inclusione per il framework del gioco e poi la barra in avanti sarà -- punto H in modo da poter essere

112
00:07:40,240 --> 00:07:45,340
‫sicuri di avere tutto in ordine qui e poi semplicemente imposteremo il valore come tornare a quello dovrebbe essere

113
00:07:45,610 --> 00:07:47,320
‫tutto ciò di cui abbiamo bisogno.

114
00:07:47,320 --> 00:07:49,120
‫Andiamo a compilare e vediamo se funziona.

115
00:07:49,180 --> 00:07:50,290
‫In effetti, un'altra cosa.

116
00:07:50,290 --> 00:07:54,640
‫Probabilmente vogliamo un bel nome carino, quindi dovremmo avere un costruttore qui.

117
00:07:54,670 --> 00:08:00,520
‫Quindi creerò una sezione pubblica con il costruttore, che sarà il nome della classe,

118
00:08:00,520 --> 00:08:03,730
‫e poi andremo avanti e creeremo quell'implementazione.

119
00:08:03,730 --> 00:08:08,530
‫Porterò la mia implementazione al di sopra dell'implementazione per tick node e

120
00:08:08,530 --> 00:08:17,350
‫quindi avremo impostato il nome del nodo uguale a quello dovrebbe essere la posizione del giocatore di aggiornamento e costruiamo e vediamo se funziona.

121
00:08:17,680 --> 00:08:19,240
‫Sembra che mi mancasse un punto e virgola.

122
00:08:19,240 --> 00:08:19,990
‫Proviamolo di nuovo.

123
00:08:20,170 --> 00:08:25,810
‫Una volta che è stato compilato con successo, possiamo andare oltre il nostro nemico e oltre all'impostazione del

124
00:08:25,810 --> 00:08:31,600
‫focus, voglio aggiungere un nuovo servizio che abbiamo mostrato qui come posizione del giocatore in cui il bel nome

125
00:08:31,600 --> 00:08:34,570
‫viene praticamente visualizzato come posizione di gioco dell'aggiornamento .

126
00:08:34,570 --> 00:08:40,660
‫Puoi vedere che vuole che ti dica la frequenza di spuntare ogni punto per 2. 6 secondi.

127
00:08:40,660 --> 00:08:43,930
‫È meglio che usare tick perché sappiamo che tick esegue ogni fotogramma qui.

128
00:08:43,930 --> 00:08:46,630
‫Questo è in esecuzione meno frequentemente, il che è una buona cosa.

129
00:08:46,630 --> 00:08:52,390
‫E possiamo entrare nei dettagli e creare un tasto lavagna, scorrere verso il basso e selezionare che

130
00:08:52,390 --> 00:08:58,690
‫vogliamo aggiornare non solo come posizione di gioco, ma anche come ultima posizione nota del giocatore, perché accadrà ogni

131
00:08:58,690 --> 00:09:02,620
‫fotogramma finché stiamo inseguendo e quello è il comportamento che vogliamo.

132
00:09:02,830 --> 00:09:08,890
‫Quindi un altro nodo di servizio che vogliamo andare avanti e creare farà il comportamento dei controller.

133
00:09:08,890 --> 00:09:11,170
‫Scenderemo a prendere e vedere cosa resta.

134
00:09:11,170 --> 00:09:17,470
‫Per noi da fare qui è aggiornare la posizione del giocatore a condizione che abbiamo la linea di vista.

135
00:09:17,470 --> 00:09:19,330
‫Quindi vogliamo che aggiorni la posizione di gioco.

136
00:09:19,330 --> 00:09:22,240
‫Se abbiamo linee come cancellare la posizione se non lo facciamo.

137
00:09:22,540 --> 00:09:23,830
‫Quindi sarà un nuovo servizio.

138
00:09:23,830 --> 00:09:25,480
‫Nota che è un comportamento leggermente diverso.

139
00:09:25,900 --> 00:09:28,240
‫Aggiungeremo una nuova, nuova classe C++.

140
00:09:28,240 --> 00:09:29,890
‫Andremo a mostrare tutte le classi.

141
00:09:29,890 --> 00:09:35,110
‫E ancora, sottolineeremo il servizio Blackboard Base come nostra classe base e

142
00:09:35,110 --> 00:09:39,610
‫la chiameremo B. T. Servizio di sottolineatura.

143
00:09:40,620 --> 00:09:43,700
‫Posizione del giocatore se vista.

144
00:09:44,220 --> 00:09:46,830
‫E vai avanti e crea quella classe.

145
00:09:46,950 --> 00:09:51,090
‫E poiché queste sono tutte cose che hai visto principalmente prima, sarà la tua sfida implementare

146
00:09:51,090 --> 00:09:51,690
‫questo servizio.

147
00:09:52,050 --> 00:09:57,540
‫Quindi implementerai tic node usando il codice nel controller aereo.

148
00:09:57,540 --> 00:10:04,320
‫Come guida, dovrai procurarti il puntatore del controller aereo dall'interno del servizio BT.

149
00:10:04,320 --> 00:10:09,690
‫Ora questo è esattamente lo stesso che abbiamo fatto nelle attività beat, quindi usalo come guida per ottenere

150
00:10:09,690 --> 00:10:11,130
‫quel puntatore del controller.

151
00:10:11,640 --> 00:10:15,240
‫Avrai bisogno del puntatore del controller dell'aria per verificare la linea di vista.

152
00:10:15,240 --> 00:10:21,060
‫Ricorda, la linea di vista è un metodo sul controller aereo e quindi è necessario aggiornare o

153
00:10:21,060 --> 00:10:27,210
‫cancellare la chiave a seconda del controllo della linea di vista e quindi posizionare questo nodo nell'albero del comportamento.

154
00:10:27,210 --> 00:10:31,950
‫Dove pensi che sarà il livello corretto dell'albero del comportamento per l'esecuzione di questo servizio?

155
00:10:32,160 --> 00:10:36,840
‫Pensaci un po' e fai un po' di grattamento al mento, pausa, video e prova.

156
00:10:38,040 --> 00:10:38,270
‫Bene.

157
00:10:38,280 --> 00:10:38,790
‫Ben tornato.

158
00:10:38,820 --> 00:10:44,400
‫Quindi questo ha aperto un nuovo servizio di barbabietola nel codice di Visual Studio.

159
00:10:44,790 --> 00:10:48,360
‫Ora sarà praticamente identico nell'intestazione.

160
00:10:48,900 --> 00:10:53,850
‫Quindi andrò avanti e lo copierò in un'intestazione appena generata.

161
00:10:54,390 --> 00:10:59,970
‫L'eccezione è che dobbiamo cambiare il nome del costruttore in modo che corrisponda.

162
00:11:00,450 --> 00:11:07,380
‫Ora creeremo un'implementazione per il costruttore e gli daremo un nome di nodo per aggiornare la posizione

163
00:11:08,070 --> 00:11:10,170
‫del giocatore se viene visualizzata.

164
00:11:10,920 --> 00:11:12,160
‫E aggiungi un punto e virgola.

165
00:11:12,180 --> 00:11:12,630
‫La fine qui.

166
00:11:12,680 --> 00:11:14,110
‫Non dimentichiamolo questa volta.

167
00:11:14,520 --> 00:11:16,290
‫Quindi di nuovo nel C++.

168
00:11:16,290 --> 00:11:18,450
‫Sto implementando anche tick node.

169
00:11:18,840 --> 00:11:25,980
‫E copierò solo se riusciamo a trovare la posizione del giocatore CP E copierò semplicemente la chiamata

170
00:11:25,980 --> 00:11:32,550
‫a super e l'ottenimento del pedone del giocatore e il controllo del ritorno nullo.

171
00:11:32,550 --> 00:11:35,880
‫In effetti, copierò l'intero corpo e lo modificheremo da lì.

172
00:11:36,630 --> 00:11:43,300
‫Quindi, copiando tutto ciò, copieremo anche l'accesso al componente lavagna con l'inclusione per il componente lavagna,

173
00:11:43,300 --> 00:11:49,230
‫le statistiche di gioco e il pedone, perché abbiamo bisogno dell'accesso a tutti

174
00:11:49,230 --> 00:11:49,860
‫questi.

175
00:11:50,130 --> 00:11:52,950
‫In effetti, gran parte della funzionalità è condivisa qui.

176
00:11:53,220 --> 00:11:58,830
‫Potresti pensare di farli condividere in qualche modo questo codice, ma penso che non ci siano così tante duplicazioni

177
00:11:58,830 --> 00:12:00,090
‫che ci interessano abbastanza.

178
00:12:00,900 --> 00:12:05,400
‫Quindi quello che dovremo fare qui è anche controllare di avere un controller aereo.

179
00:12:05,400 --> 00:12:15,210
‫Quindi farò un se il proprietario dei componenti del proprietario comp fa il punto ottiene un proprietario è uguale a puntatore nullo, allora vorremo

180
00:12:15,810 --> 00:12:19,170
‫andare avanti e tornare in questa fase.

181
00:12:19,980 --> 00:12:24,330
‫Quindi la prossima cosa che vorremo fare è controllare la nostra visibilità.

182
00:12:24,330 --> 00:12:31,890
‫Quindi faremo un se il punto di comp del proprietario ottiene il proprietario dell'aria e quindi faremo una freccia qui

183
00:12:31,890 --> 00:12:34,410
‫e dobbiamo includere un controller qui.

184
00:12:34,410 --> 00:12:36,600
‫Quindi sarà l'hash include.

185
00:12:38,150 --> 00:12:40,760
‫E sarà il controllore.

186
00:12:40,790 --> 00:12:50,930
‫Quindi allora vogliamo fare la linea e vedere qual è l'uso corretto qui se andiamo al controller dell'aria.

187
00:12:50,930 --> 00:12:59,060
‫CP La linea di vista due è ciò che vogliamo, quindi la linea di vista fino ad allora dobbiamo fare la linea di vista per

188
00:12:59,060 --> 00:12:59,720
‫il gioco.

189
00:12:59,720 --> 00:13:00,980
‫Una pedina in questo caso.

190
00:13:00,980 --> 00:13:02,600
‫Abbiamo una linea di visuale sul pedone del giocatore?

191
00:13:03,290 --> 00:13:04,790
‫È quello che stiamo facendo nel CPA?

192
00:13:04,790 --> 00:13:05,780
‫Ricontrolliamolo.

193
00:13:05,780 --> 00:13:06,440
‫Sì.

194
00:13:07,250 --> 00:13:11,150
‫Quindi vorremo andare avanti e impostare i valori in modo diverso.

195
00:13:11,660 --> 00:13:15,740
‫Quindi stiamo impostando il valore del vettore sulla posizione dell'attore di cattura del pedone del giocatore.

196
00:13:15,740 --> 00:13:18,560
‫Sì, se abbiamo un'altra linea di visuale.

197
00:13:18,560 --> 00:13:22,160
‫Se non abbiamo linea di vista, sappiamo che dobbiamo cancellare quel valore.

198
00:13:22,580 --> 00:13:25,790
‫Quindi avremo ancora il componente proprietario, otterremo il componente lavagna.

199
00:13:26,060 --> 00:13:31,580
‫Quindi sarà un valore chiaro e cancelleremo ancora il valore della chiave

200
00:13:31,580 --> 00:13:37,700
‫della lavagna selezionata, e questo dovrebbe praticamente coprirci per l'implementazione della posizione del giocatore.

201
00:13:37,700 --> 00:13:41,460
‫Se visto, andiamo a compilare e vediamo se funziona bene.

202
00:13:41,460 --> 00:13:42,650
‫La compilazione è riuscita.

203
00:13:42,650 --> 00:13:44,540
‫Entriamo nell'albero del comportamento.

204
00:13:44,570 --> 00:13:50,750
‫Ora il livello che voglio che questo esegua è fondamentalmente al livello più alto nel selettore iniziale, perché voglio che aggiorni

205
00:13:50,750 --> 00:13:56,330
‫la posizione del giocatore praticamente tutto il tempo perché dobbiamo essere in grado di interrompere uno qualsiasi di

206
00:13:56,330 --> 00:13:59,330
‫questi altri comportamenti in base al giocatore posizione impostata.

207
00:13:59,720 --> 00:14:02,570
‫Quindi dobbiamo essere in grado di impostare un disinserimento in qualsiasi momento.

208
00:14:03,050 --> 00:14:08,630
‫Quindi andrò a fare clic con il pulsante destro del mouse sul selettore di livello superiore e sul servizio nella posizione di gioco, se visto.

209
00:14:09,290 --> 00:14:13,910
‫E poi selezioneremo quel nodo di servizio e selezioneremo la sua chiave della lavagna, che sarà la

210
00:14:13,910 --> 00:14:15,020
‫nostra posizione di gioco.

211
00:14:15,740 --> 00:14:20,390
‫In modo che uno impostato nella posizione di gioco, la posizione del giocatore di aggiornamento, quello più stupido stia

212
00:14:20,400 --> 00:14:21,980
‫aggiornando l'ultima posizione del giocatore conosciuta.

213
00:14:22,640 --> 00:14:29,210
‫E ora dovremmo essere in grado di passare al nostro controller aereo ed essenzialmente rimuovere tutto questo

214
00:14:29,210 --> 00:14:33,500
‫codice nella tecnologia perché è stato invece sostituito dai nostri servizi.

215
00:14:33,830 --> 00:14:36,230
‫E possiamo andare avanti e compilare e vedere se funziona.

216
00:14:36,320 --> 00:14:41,030
‫Andiamo all'editor e giochiamo e vediamo se abbiamo ancora il nostro nemico che si avvicina a noi.

217
00:14:41,030 --> 00:14:46,520
‫Viene di corsa da noi, perde di vista, poi torna verso di noi, inizia a sparare.

218
00:14:46,520 --> 00:14:46,790
‫Sì.

219
00:14:46,790 --> 00:14:53,000
‫Fondamentalmente tutto funziona come prima, tranne che ora lo sta facendo interamente tramite servizi che abbiamo

220
00:14:53,000 --> 00:14:55,520
‫scritto per noi stessi in C++.

221
00:14:55,820 --> 00:15:01,010
‫Nella prossima lezione, correggeremo quel fastidioso bug in cui l'IA continua a sparare e

222
00:15:01,010 --> 00:15:02,990
‫alla fine riesce a uccidersi.

223
00:15:03,290 --> 00:15:03,950
‫Lo vedrò.

