﻿1
00:00:04,410 --> 00:00:05,280
‫Ciao e Benvenuto.

2
00:00:05,280 --> 00:00:11,430
‫In questa lezione, creeremo la nostra prima traccia geometrica in modo che quando andiamo a guardare i nostri

3
00:00:11,430 --> 00:00:14,340
‫gargoyle, ci avviciniamo abbastanza a portata di mano.

4
00:00:14,730 --> 00:00:20,760
‫Quindi, come se non bastasse, stampa il nome dell'attore che è stato colpito dalla traccia.

5
00:00:21,030 --> 00:00:23,160
‫Immergiamoci e vediamo come può farlo.

6
00:00:23,580 --> 00:00:27,480
‫Quindi siamo finalmente pronti per affrontare questa spazzata singolo per canale.

7
00:00:27,480 --> 00:00:31,050
‫C'erano molti pezzi che dovevamo avere in atto per farlo funzionare.

8
00:00:31,380 --> 00:00:32,310
‫Ma finalmente, siamo qui.

9
00:00:32,790 --> 00:00:36,180
‫Quindi diamo un'occhiata alla sintassi di questa funzione.

10
00:00:36,180 --> 00:00:43,200
‫Quindi siamo in un posto molto migliore per capire cosa stava succedendo qui in questi tipi.

11
00:00:43,200 --> 00:00:50,730
‫Quindi il valore restituito è un booleano, che sostanzialmente ci dice se abbiamo trovato o meno qualcosa con lo

12
00:00:50,730 --> 00:00:51,210
‫sweep.

13
00:00:52,080 --> 00:00:56,400
‫Ora il secondo argomento, come puoi vedere qui, è un riferimento.

14
00:00:56,400 --> 00:00:57,810
‫Ha questa e commerciale.

15
00:00:58,290 --> 00:01:02,490
‫E non importa se c'è uno spazio dopo la e commerciale o uno spazio tra il

16
00:01:02,490 --> 00:01:07,560
‫nome della variabile, è lo stesso finché c'è una e commerciale dopo il tipo che dice che quel tipo è

17
00:01:08,070 --> 00:01:12,450
‫un riferimento ed è un tipo chiamato risultato F hit , puoi vedere che è uno struct.

18
00:01:12,960 --> 00:01:15,840
‫Quindi questo risultato del colpo F è il colpo alternativo.

19
00:01:15,840 --> 00:01:18,600
‫Questo è il risultato che esce dalla spazzata.

20
00:01:18,600 --> 00:01:23,910
‫Possiamo vedere in cosa sono state colpite le cose in quanto è una struttura perché ci sono più cose diverse,

21
00:01:24,180 --> 00:01:26,580
‫informazioni che possono venire fuori da questa spazzata.

22
00:01:26,850 --> 00:01:30,990
‫Allora abbiamo un riferimento vettoriale f costante.

23
00:01:31,080 --> 00:01:36,300
‫Quindi questo sta prendendo il nostro vettore iniziale come riferimento invece di copiarlo.

24
00:01:36,600 --> 00:01:40,470
‫Lo stesso con il vettore finale, quindi abbiamo una rotazione.

25
00:01:40,470 --> 00:01:46,890
‫Quindi questa è la rotazione della forma usando un f quat, che è una struttura alternativa all'uso del rotatore

26
00:01:46,890 --> 00:01:47,580
‫f.

27
00:01:47,580 --> 00:01:51,660
‫Vedremo come possiamo praticamente semplicemente essere messi in una rotazione zero qui perché stiamo usando una sfera.

28
00:01:51,660 --> 00:01:52,590
‫Non importa.

29
00:01:53,220 --> 00:01:59,880
‫La prossima cosa che arriva è il canale Trace e vedremo come capire come viene chiamato il

30
00:01:59,880 --> 00:02:01,950
‫nostro canale Trace in C++.

31
00:02:02,490 --> 00:02:08,760
‫E poi abbiamo la nostra forma di collisione, che sarà l'ultimo argomento che dobbiamo fornire, e vedremo

32
00:02:08,760 --> 00:02:13,500
‫come possiamo creare una sfera di un certo raggio in questo modo.

33
00:02:13,980 --> 00:02:18,480
‫Ma prima di iniziare, dovremo sapere qual è quel raggio e come averlo configurato.

34
00:02:18,480 --> 00:02:22,830
‫Quindi esamineremo il nostro Grandpa Dot H, rimuoveremo queste funzioni che abbiamo

35
00:02:22,830 --> 00:02:27,840
‫utilizzato come esempi per i riferimenti ai contenuti di riferimento e i nostri parametri.

36
00:02:27,840 --> 00:02:34,020
‫E creeremo una nuova proprietà che verrà aggiunta ovunque,

37
00:02:34,020 --> 00:02:42,450
‫e sarà un galleggiante chiamato raggio di presa, e lo imposteremo a 101 metri.

38
00:02:42,870 --> 00:02:49,110
‫Quindi esaminiamo ora il C++ e rimuoviamo i riferimenti a stampa danneggiata e presenta danni

39
00:02:49,110 --> 00:02:53,460
‫e possiamo rimuovere tutto ciò anche dal componente TIC.

40
00:02:53,460 --> 00:02:58,620
‫L'intera dichiarazione di dove stiamo passando il danno, perché qui stiamo tracciando la nostra linea

41
00:02:58,890 --> 00:03:03,630
‫di debug e ora vogliamo fare una chiamata per spazzare singolo per canale.

42
00:03:04,140 --> 00:03:05,970
‫Quindi digiteremo sweep.

43
00:03:06,150 --> 00:03:13,290
‫Quindi digiteremo get world parentesi perché sappiamo che questa è una funzione sul nuovo oggetto del

44
00:03:13,290 --> 00:03:13,800
‫mondo.

45
00:03:14,340 --> 00:03:19,440
‫Farò una freccia perché sappiamo che get world restituisce un puntatore

46
00:03:19,440 --> 00:03:28,980
‫e quindi faremo uno sweep singolo per canale in questo modo e dovremo inserire un parametro out affinché venga popolato

47
00:03:28,980 --> 00:03:31,470
‫come primo argomento qui.

48
00:03:31,920 --> 00:03:37,170
‫Quindi creeremo una variabile che sarà vuota, che verrà popolata e deve avere il

49
00:03:37,170 --> 00:03:38,070
‫tipo giusto.

50
00:03:38,070 --> 00:03:44,220
‫Quindi sarà un risultato f f hit e chiameremo semplicemente la variabile stessa hit result, mettere un punto e virgola

51
00:03:44,790 --> 00:03:49,440
‫alla fine perché non lo stiamo inizializzando, non gli stiamo dando alcun valore, ma

52
00:03:49,440 --> 00:03:54,780
‫stiamo lo passerà in modo che gli venga assegnato un valore dalla funzione sweep single per canale.

53
00:03:55,830 --> 00:03:57,030
‫Quindi questo è il nostro risultato di successo.

54
00:03:57,330 --> 00:04:04,020
‫Quindi dobbiamo passare i fattori di inizio e fine che sappiamo non verranno copiati ma a cui si

55
00:04:04,020 --> 00:04:04,920
‫farà riferimento.

56
00:04:05,520 --> 00:04:13,590
‫Ora abbiamo bisogno di popolare la rotazione che possiamo fare con una semplice identità di due punti e due punti squat

57
00:04:13,710 --> 00:04:17,280
‫che dice fondamentalmente che questa non è una rotazione.

58
00:04:17,280 --> 00:04:19,230
‫È solo un linguaggio un po' strano per questo.

59
00:04:19,230 --> 00:04:22,980
‫È un discorso matematico per significare che questa non è una rotazione.

60
00:04:23,670 --> 00:04:26,970
‫Successivamente, abbiamo bisogno del canale di collisione della traccia.

61
00:04:27,000 --> 00:04:30,780
‫Ora, come possiamo trovare quel canale di collisione della traccia?

62
00:04:31,290 --> 00:04:38,190
‫Bene, se andiamo nella cartella che contiene il nostro progetto e entriamo in config e quindi andiamo all'ini del motore predefinito,

63
00:04:38,190 --> 00:04:43,980
‫fare clic con il pulsante destro del mouse e aprire con il codice di Visual Studio.

64
00:04:44,190 --> 00:04:52,080
‫E qui mi piacerebbe cercare la grammatica in modo da poter vedere il canale di risposta alle collisioni per il

65
00:04:52,080 --> 00:04:52,740
‫grabber.

66
00:04:52,740 --> 00:04:55,770
‫Ed è stato fondamentalmente impostato qui nell'INI del motore predefinito.

67
00:04:56,040 --> 00:05:00,930
‫Viene menzionato solo una volta nell'intero file e puoi vedere il nome del canale.

68
00:05:00,930 --> 00:05:03,480
‫Questo è il nome del canale in C++ non è molto.

69
00:05:03,780 --> 00:05:05,880
‫Ovvio, ma è s. e. c.

70
00:05:06,120 --> 00:05:14,340
‫Game Trace Channel due, quindi possiamo andare avanti e copiarlo e poi possiamo tornare a Prendo una copia e la incollo

71
00:05:14,340 --> 00:05:17,730
‫qui come il canale di traccia che vogliamo.

72
00:05:18,060 --> 00:05:22,530
‫Ora, questa linea sta diventando piuttosto lunga e ciò che possiamo fare per compensare è

73
00:05:22,530 --> 00:05:26,970
‫che possiamo effettivamente mettere ciascuno di questi parametri su linee separate, o almeno distribuirli.

74
00:05:26,970 --> 00:05:28,980
‫Quindi forse l'inizio e la fine sono gli stessi.

75
00:05:29,310 --> 00:05:34,770
‫L'identità su è su una riga, il canale di traccia è su un'altra riga come.

76
00:05:34,770 --> 00:05:39,420
‫Quindi ora questo ci dà solo un po' più di spazio per leggere questi lunghi elenchi di argomenti.

77
00:05:39,720 --> 00:05:45,060
‫Ora, se torniamo alla documentazione, possiamo vedere la prossima cosa che dobbiamo passare qui è

78
00:05:45,060 --> 00:05:46,890
‫una forma di collisione F.

79
00:05:47,430 --> 00:05:49,820
‫Quindi dobbiamo costruire una forma.

80
00:05:49,830 --> 00:05:52,710
‫Forse lo faremo come una variabile separata in alto.

81
00:05:52,980 --> 00:05:57,420
‫Lo farò solo prima del risultato del colpo F per chiarire che il risultato del colpo F è in realtà un

82
00:05:57,420 --> 00:05:58,080
‫parametro out.

83
00:05:58,080 --> 00:06:02,310
‫Lo lascerò sempre come l'ultima cosa prima della chiamata alla funzione.

84
00:06:02,910 --> 00:06:08,940
‫Quindi creeremo una forma di collisione F, che chiameremo sfera, e imposteremo due

85
00:06:08,940 --> 00:06:12,300
‫uguali alla forma di collisione F.

86
00:06:12,600 --> 00:06:15,090
‫I due punti, i due punti fanno la sfera.

87
00:06:15,150 --> 00:06:18,450
‫Quindi questo creerà una nuova forma di collisione della sfera.

88
00:06:18,450 --> 00:06:26,520
‫E l'argomento di questa funzione è il raggio della sfera che abbiamo come variabile del raggio di presa che abbiamo configurato

89
00:06:26,520 --> 00:06:33,480
‫come proprietà, metti un punto e virgola alla fine di questa linea e possiamo passare nella sfera

90
00:06:33,750 --> 00:06:40,900
‫come argomenti finali al canale di scansione funzione e metti un punto e virgola alla fine di quella riga.

91
00:06:41,190 --> 00:06:47,730
‫Ora un'altra cosa è che questa funzione che conosciamo restituisce un valore booleano, ovvero se abbiamo colpito qualcosa.

92
00:06:47,730 --> 00:06:54,990
‫Quindi inserirò il risultato in una variabile booleana chiamata has hit ed è ciò che useremo

93
00:06:54,990 --> 00:06:57,270
‫più avanti in questa funzione.

94
00:06:57,570 --> 00:07:02,220
‫Quindi vorrei sfidarti a stampare il nome dell'attore di successo.

95
00:07:02,220 --> 00:07:04,260
‫Quindi ora abbiamo questa spazzata in corso.

96
00:07:04,500 --> 00:07:07,170
‫Dovremmo essere in grado di ottenere alcuni risultati da esso.

97
00:07:07,170 --> 00:07:11,670
‫Quindi usa un'istruzione if per stampare se abbiamo qualcosa.

98
00:07:11,670 --> 00:07:16,530
‫Quindi, se quel booleano è vero, è allora che stamperemo il nome dell'attore.

99
00:07:16,980 --> 00:07:22,890
‫Otterrai all'attore che la traccia quadrata viene colpita usando la struttura del risultato del colpo.

100
00:07:22,890 --> 00:07:28,920
‫Ha un metodo su di esso a cui puoi accedere con l'operatore DOT perché è uno struct e non è un

101
00:07:28,920 --> 00:07:30,030
‫puntatore allo struct.

102
00:07:30,600 --> 00:07:36,420
‫Puoi fare un punto, recitare e usare le parentesi e questo ti restituisce un puntatore dell'attore.

103
00:07:37,140 --> 00:07:42,000
‫Quindi usando il puntatore attivo puoi ottenere il nome dell'attore usando il metodo get

104
00:07:42,330 --> 00:07:48,960
‫nome attore o etichetta e pensare se vuoi usare l'operatore punto o freccia per questo e quindi compilare e testare

105
00:07:48,960 --> 00:07:53,490
‫dopo aver stampato il nome dell'attore e vedere cosa puoi colpito sulla scena.

106
00:07:53,700 --> 00:07:55,260
‫Metti in pausa il video e prova.

107
00:07:58,420 --> 00:07:58,640
‫Bene.

108
00:07:58,690 --> 00:07:59,470
‫Ben tornato.

109
00:07:59,830 --> 00:08:02,350
‫Quindi inizieremo con la creazione dell'istruzione if.

110
00:08:02,350 --> 00:08:09,070
‫Quindi, se ha colpito, metteremo delle parentesi graffe e faremo prima di tutto, vogliamo ottenere quel

111
00:08:09,070 --> 00:08:10,180
‫punto attore.

112
00:08:10,190 --> 00:08:17,410
‫Quindi un attore di successo è uguale ai risultati di successo.

113
00:08:18,640 --> 00:08:19,860
‫Prendi il punto.

114
00:08:20,530 --> 00:08:21,110
‫Attore.

115
00:08:21,970 --> 00:08:22,630
‫Parentesi.

116
00:08:22,630 --> 00:08:22,840
‫Piace.

117
00:08:22,840 --> 00:08:28,630
‫Quindi faremo un dialogo e scriveremo un attore di successo.

118
00:08:29,290 --> 00:08:35,320
‫Due punti percentuali e possiamo fare un attore di successo.

119
00:08:35,320 --> 00:08:40,090
‫E poiché è un puntatore qui, possiamo fare una frecciata dell'attore e ottenere.

120
00:08:40,450 --> 00:08:43,060
‫Nome o etichetta dell'attore.

121
00:08:43,450 --> 00:08:44,590
‫Poi alcune parentesi.

122
00:08:44,980 --> 00:08:51,730
‫E poiché questa è una stringa, dobbiamo mettere una stella davanti all'intero shebang in modo che possa visualizzarlo

123
00:08:52,300 --> 00:08:54,940
‫correttamente in un registro delle query.

124
00:08:55,210 --> 00:08:58,390
‫Ok, quindi ora dobbiamo solo andare avanti e compilare questo.

125
00:08:58,720 --> 00:09:04,090
‫Quindi, una volta che siamo nella scena, apriamo il registro di output e lo colleghiamo al layout in modo da poterlo

126
00:09:04,090 --> 00:09:04,930
‫vedere mentre giochiamo.

127
00:09:05,110 --> 00:09:10,870
‫E hanno premuto il pulsante di riproduzione e immediatamente puoi vedere che stiamo colpendo quella statua del gargoyle.

128
00:09:11,110 --> 00:09:16,570
‫Se mi giro e guardo qualcos'altro, puoi capire perché non è molto chiaro se non sto

129
00:09:16,570 --> 00:09:19,100
‫colpendo nulla o se non mostra nulla.

130
00:09:19,120 --> 00:09:24,700
‫Quindi quello che ho intenzione di fare è inserire qui una dichiarazione alt to if, mettere alcune parentesi in

131
00:09:25,060 --> 00:09:27,400
‫più e farò un altro registro annuale.

132
00:09:27,640 --> 00:09:34,420
‫E questa volta il testo dirà, nessun attore ha colpito, ricompiliamo e andiamo a suonare nell'editor.

133
00:09:34,420 --> 00:09:35,170
‫E puoi vederlo ora.

134
00:09:35,170 --> 00:09:41,020
‫Dice che nessun attore ha colpito tutto il tempo finché non vado e inizio a guardare il gargoyle.

135
00:09:41,290 --> 00:09:43,860
‫E ora sta dicendo che il gargoyle è la cosa che viene colpita.

136
00:09:43,870 --> 00:09:49,480
‫Se mi sposto troppo indietro per potermi allontanare, puoi vedere che sta dicendo che nessun attore viene

137
00:09:49,480 --> 00:09:50,530
‫colpito di nuovo.

138
00:09:50,740 --> 00:09:51,250
‫Roba fantastica.

139
00:09:51,250 --> 00:09:57,850
‫Quindi ora abbiamo eseguito una scansione della geometria con un oggetto sferico e possiamo vedere che sta effettivamente reagendo solo

140
00:09:58,240 --> 00:10:03,580
‫agli attori nei nostri particolari canali di traccia, come i Gargoyle, l'unico che è impostato al

141
00:10:03,580 --> 00:10:04,240
‫momento.

142
00:10:04,540 --> 00:10:06,700
‫Quindi è l'unico che sta trovando.

143
00:10:06,820 --> 00:10:08,530
‫Ci vediamo alla prossima lezione.

