﻿1
00:00:04,380 --> 00:00:05,490
‫Ciao e Benvenuto.

2
00:00:05,490 --> 00:00:11,640
‫In questa lezione, implementeremo le nostre funzioni per i membri della classe, spostare la piattaforma e ruotare

3
00:00:11,640 --> 00:00:12,570
‫la piattaforma.

4
00:00:12,570 --> 00:00:16,950
‫Vedremo come possiamo impostarli in modo che possano accogliere le discussioni.

5
00:00:17,280 --> 00:00:20,970
‫E ci aiuterà a riordinare un po' il nostro codice.

6
00:00:20,970 --> 00:00:23,100
‫Immergiamoci e vediamo come funziona.

7
00:00:24,150 --> 00:00:29,520
‫Quindi fino ad ora abbiamo utilizzato le funzioni C++ che sono già state create per noi.

8
00:00:29,520 --> 00:00:34,620
‫Abbiamo usato prendere questi e possiamo giocare in termini di scrittura delle loro funzionalità.

9
00:00:34,800 --> 00:00:38,100
‫E abbiamo anche utilizzato funzioni che altre persone hanno scritto per noi.

10
00:00:38,100 --> 00:00:40,830
‫Li abbiamo chiamati come ottenere posizione attiva e ottenere nome.

11
00:00:41,370 --> 00:00:49,080
‫Ora come possiamo creare nuove funzioni per aiutare a organizzare il nostro codice e mantenere queste funzioni piccole

12
00:00:49,080 --> 00:00:51,630
‫e tutto molto più leggibile?

13
00:00:52,380 --> 00:00:57,930
‫Bene, abbiamo già messo a punto gli elementi costitutivi di base arrivando verso la fine della sezione.

14
00:00:57,930 --> 00:01:00,300
‫Capiamo molto di più sulla sintassi C++.

15
00:01:00,300 --> 00:01:08,100
‫Quindi quello che voglio fare è essenzialmente creare una nuova funzione sulla piattaforma mobile che ci permetta di avere

16
00:01:08,550 --> 00:01:12,360
‫solo immissione, diciamo piattaforma di spostamento delle chiamate.

17
00:01:12,930 --> 00:01:14,160
‫Perché voglio farlo?

18
00:01:14,160 --> 00:01:20,250
‫Bene, perché essere in grado di effettuare una chiamata di funzione come questa chiamata MOVE Platform, parla davvero di ciò che

19
00:01:20,250 --> 00:01:22,560
‫stiamo cercando di fare in questo momento.

20
00:01:22,560 --> 00:01:28,380
‫Abbiamo un sacco di cose in corso in tecnologia e non sono del tutto chiaro perché stiamo facendo tutte queste

21
00:01:28,380 --> 00:01:34,230
‫cose se vengo a dargli un'occhiata, se sono entrato in tecnologia e ho visto una funzione che dice Sposta piattaforma ,

22
00:01:34,710 --> 00:01:39,570
‫beh, all'improvviso ho il contesto per quello che dovrebbero fare tutte queste cose e non ho bisogno

23
00:01:39,570 --> 00:01:42,300
‫di un solo commento per dirmi cosa sta succedendo.

24
00:01:42,510 --> 00:01:47,430
‫Ciò sarà particolarmente utile quando aggiungiamo al mix anche la possibilità di ruotare la

25
00:01:47,430 --> 00:01:48,000
‫piattaforma.

26
00:01:48,930 --> 00:01:52,710
‫Quindi, come definiamo le funzioni di dichiarazione?

27
00:01:52,710 --> 00:01:56,610
‫Bene, l'aspetto della dichiarazione è finito nell'intestazione del file.

28
00:01:56,610 --> 00:02:02,100
‫È qui che in pratica diciamo testa a C++, avremo una funzione che assomiglierà

29
00:02:02,100 --> 00:02:02,970
‫a questa.

30
00:02:03,390 --> 00:02:06,870
‫E poi nel C++ è dove definiamo effettivamente la funzione.

31
00:02:06,870 --> 00:02:09,840
‫Gli diamo il corpo, lo diciamo esattamente a C++.

32
00:02:09,840 --> 00:02:12,390
‫Ecco come funziona la funzione.

33
00:02:13,230 --> 00:02:16,020
‫E diamo un'occhiata a come possiamo farlo.

34
00:02:16,470 --> 00:02:20,700
‫Abbiamo alcuni esempi di funzioni e abbiamo un grande gioco, abbiamo la tecnologia.

35
00:02:21,180 --> 00:02:28,860
‫Ed è un buon momento per noi per esaminare le diverse sezioni che abbiamo in un file di intestazione.

36
00:02:29,070 --> 00:02:34,950
‫Abbiamo il pubblico e la protezione che vengono menzionati qui e il pubblico viene menzionato di nuovo.

37
00:02:35,490 --> 00:02:36,450
‫Ora cosa significa questo?

38
00:02:36,450 --> 00:02:43,350
‫Queste parole chiave con i due punti alla fine definiscono sostanzialmente una sezione di accessibilità.

39
00:02:43,350 --> 00:02:46,200
‫Queste funzioni, da dove è possibile accedervi.

40
00:02:46,770 --> 00:02:51,360
‫Abbiamo visto la normalità di Get Safe.

41
00:02:51,360 --> 00:02:57,930
‫Questa è una funzione che chiamiamo su un vettore F, ma lo chiamiamo da un'altra classe, non

42
00:02:57,960 --> 00:02:59,670
‫da un vettore F.

43
00:03:00,240 --> 00:03:04,860
‫Ciò significa che l'accessibilità di questa funzione deve essere pubblica.

44
00:03:05,040 --> 00:03:09,690
‫Ora lasceremo da parte protetti solo per un minuto perché lì diventa un po' più complicato.

45
00:03:10,020 --> 00:03:14,130
‫Ma c'è un altro tipo di parola chiave che possiamo usare, che è privata.

46
00:03:14,730 --> 00:03:21,210
‫Quindi aggiungerò dopo la ripresa, aggiungerò l'avviso della parola chiave privata che non rientra in queste sezioni

47
00:03:21,210 --> 00:03:24,330
‫e inseriremo i due punti alla fine.

48
00:03:24,330 --> 00:03:29,040
‫E ciò significa che tutto ciò che verrà dopo fino alla prossima sezione, la prossima

49
00:03:29,040 --> 00:03:31,440
‫parola chiave che inserirò qui, sarà privato.

50
00:03:31,860 --> 00:03:37,980
‫Quindi questo significa che abbiamo preso tutte queste variabili e detto, Ehi, nessun'altra classe è autorizzata a toccarle.

51
00:03:38,430 --> 00:03:42,660
‫E questa di solito è la migliore pratica che non abbiamo fatto fino a questo punto perché non volevo

52
00:03:42,660 --> 00:03:44,400
‫che le cose ti confondessero un po'.

53
00:03:44,790 --> 00:03:49,320
‫Ma le variabili nelle classi dovrebbero generalmente essere affar loro.

54
00:03:49,320 --> 00:03:55,950
‫È uno dei principali tenant della programmazione orientata agli oggetti che lasciamo alle classi la gestione delle

55
00:03:55,950 --> 00:04:02,040
‫proprie variabili e vi accediamo solo utilizzando funzioni che la classe denota come pubbliche.

56
00:04:03,180 --> 00:04:08,010
‫Quindi quello che faremo qui è aggiungere alcune altre funzioni private qui perché non

57
00:04:08,010 --> 00:04:12,090
‫vogliamo che qualcosa come Move Platform venga chiamato dall'esterno della classe.

58
00:04:12,390 --> 00:04:16,320
‫Vogliamo che sia gestito dalla nostra funzione tecnologica.

59
00:04:16,950 --> 00:04:20,340
‫Quindi, come si definisce una funzione privata?

60
00:04:20,340 --> 00:04:22,620
‫Bene, lo mettiamo in una sezione privata.

61
00:04:22,620 --> 00:04:24,600
‫Quindi abbiamo la nostra parola chiave privata qui.

62
00:04:24,810 --> 00:04:31,410
‫Lo metterò dopo le nostre variabili, tuttavia, e iniziamo con il tipo restituito.

63
00:04:31,410 --> 00:04:38,670
‫E se la nostra funzione non restituisce nulla, scriviamo semplicemente void per indicare che non c'è alcun ritorno in uscita

64
00:04:38,670 --> 00:04:39,780
‫da questa funzione.

65
00:04:40,530 --> 00:04:42,540
‫Quindi gli diamo un nome di funzione.

66
00:04:42,540 --> 00:04:51,110
‫Quindi volevamo spostare la piattaforma e poi diamo alcune parentesi per indicare che questa è una funzione che apriamo e chiudiamo parentesi e

67
00:04:51,120 --> 00:04:56,880
‫poi un punto e virgola per finire la linea e dire, ok, il gioco è

68
00:04:56,880 --> 00:04:57,270
‫fatto.

69
00:04:57,270 --> 00:05:03,180
‫Questa è la funzione che voglio dichiarare qui nel file di intestazione e tutto ciò che fa.

70
00:05:03,230 --> 00:05:04,970
‫Dice Questa è la forma della funzione.

71
00:05:04,970 --> 00:05:06,020
‫Questo è il ritorno.

72
00:05:06,200 --> 00:05:11,630
‫Questi sono i parametri che prende e il nome e la classe a cui appartiene.

73
00:05:11,660 --> 00:05:16,250
‫Ora, per dargli effettivamente un'implementazione, dobbiamo definirlo nel file C++.

74
00:05:16,250 --> 00:05:17,330
‫Allora andiamo laggiù.

75
00:05:17,870 --> 00:05:23,480
‫E alla fine del file, appena fuori dalle parentesi graffe, è qui che lo facciamo.

76
00:05:23,510 --> 00:05:25,610
‫Si riparte con il tipo di reso.

77
00:05:25,610 --> 00:05:31,970
‫Quindi sarà nullo perché siamo all'interno di un file C++, non siamo all'interno delle parentesi graffe di una

78
00:05:31,970 --> 00:05:32,710
‫classe.

79
00:05:32,720 --> 00:05:41,330
‫Dobbiamo usare l'operatore di risoluzione dell'ambito per dire che stiamo cercando di definire una funzione dall'interno della classe della

80
00:05:41,330 --> 00:05:42,550
‫piattaforma mobile.

81
00:05:42,560 --> 00:05:49,130
‫Quindi digitiamo il nome della classe, che è una piattaforma mobile, ricordando che c'è un prefisso per dire che

82
00:05:49,130 --> 00:05:50,390
‫è un attore.

83
00:05:51,380 --> 00:05:55,940
‫Quindi utilizziamo i due punti, i due punti, l'operatore di risoluzione dell'ambito, quindi utilizziamo il nome della

84
00:05:55,940 --> 00:05:58,700
‫funzione che stiamo definendo, che è la piattaforma MOVE.

85
00:05:59,420 --> 00:06:03,400
‫E poi usiamo lo stesso insieme di parametri che abbiamo fatto nel file di intestazione.

86
00:06:03,410 --> 00:06:07,700
‫In questo caso, avevamo un set di parametri vuoto, quindi abbiamo solo le parentesi.

87
00:06:08,390 --> 00:06:15,200
‫E poi, invece di mettere un punto e virgola alla fine di questa riga su una nuova riga, mettiamo una parentesi

88
00:06:15,200 --> 00:06:18,590
‫graffa di apertura e una parentesi graffa di chiusura corrispondente.

89
00:06:19,070 --> 00:06:24,830
‫E tra queste parentesi graffe dove mettiamo il codice per la nostra funzione, fantastico.

90
00:06:24,830 --> 00:06:29,720
‫Quindi quello che voglio fare ora è provare a dire, beh, tutte queste funzionalità che abbiamo qui, e infatti,

91
00:06:29,720 --> 00:06:32,270
‫eliminerò i commenti perché non ne abbiamo più bisogno.

92
00:06:32,270 --> 00:06:38,120
‫Erano lo pseudocodice che usavamo per implementarlo, ma ora è servito allo scopo.

93
00:06:38,120 --> 00:06:40,160
‫Capiamo cosa stanno facendo le righe di codice.

94
00:06:40,640 --> 00:06:48,860
‫Prenderò tutto tranne la funzione di spostamento della piattaforma da Take, lo copierò e lo incollerò invece nella

95
00:06:48,860 --> 00:06:51,290
‫nostra funzione della piattaforma MOVE.

96
00:06:52,100 --> 00:06:57,710
‫Quindi questo dovrebbe funzionare più o meno allo stesso modo perché quando entriamo in tecnologia chiamiamo move platform ed esegue

97
00:06:57,710 --> 00:06:59,510
‫semplicemente lo stesso pezzo di codice.

98
00:06:59,510 --> 00:07:05,870
‫Tranne che ora l'abbiamo raggruppato in una funzione e ci rende più facile leggere e potenzialmente riutilizzare

99
00:07:05,870 --> 00:07:06,710
‫in futuro.

100
00:07:07,250 --> 00:07:11,150
‫Ma se lo fai, noterai che c'è un problema.

101
00:07:11,930 --> 00:07:19,820
‫Stiamo accedendo al tempo Delta e questo è un parametro a cui non abbiamo più accesso perché era un parametro passato

102
00:07:19,820 --> 00:07:20,870
‫alla tecnologia.

103
00:07:21,500 --> 00:07:29,600
‫Quindi, se vogliamo ottenerlo, dobbiamo avere un parametro nella nostra funzione.

104
00:07:30,080 --> 00:07:32,960
‫Quindi, quando definiamo i parametri, dobbiamo farlo in due punti.

105
00:07:32,960 --> 00:07:37,490
‫Proprio come quando definiamo la funzione, torniamo al file di intestazione e tra parentesi

106
00:07:37,820 --> 00:07:40,130
‫della nostra funzione della piattaforma MOVE.

107
00:07:40,130 --> 00:07:45,710
‫Qui è dove diciamo quali parametri vogliamo ed è esattamente come definire una variabile.

108
00:07:45,710 --> 00:07:48,080
‫Devi dargli un tipo e dargli un nome.

109
00:07:48,080 --> 00:07:52,970
‫Quindi diremo che sarà un tipo float e possiamo semplicemente chiamarlo tempo delta.

110
00:07:52,970 --> 00:07:54,290
‫Non deve essere lo stesso nome.

111
00:07:54,290 --> 00:07:55,010
‫Potremmo chiamarlo così.

112
00:07:55,220 --> 00:07:56,630
‫Potremmo chiamarlo tempo.

113
00:07:56,990 --> 00:08:03,470
‫Ma è più facile dargli lo stesso nome perché poi è ovvio a chiunque lo legga cosa dovrebbe essere

114
00:08:03,470 --> 00:08:04,310
‫passato qui.

115
00:08:04,520 --> 00:08:09,530
‫Quindi nel file C++, dobbiamo abbinare l'elenco dei parametri.

116
00:08:09,530 --> 00:08:13,730
‫Quindi, ancora una volta, puoi farlo semplicemente copiando e incollando o digitandolo.

117
00:08:13,730 --> 00:08:18,020
‫Se lo digiti, assicurati di non fare errori di battitura perché il compilatore si lamenterà.

118
00:08:18,470 --> 00:08:24,680
‫Quindi avremo un float chiamato Delta Time passato come parametro o definito come parametro per spostare la

119
00:08:24,680 --> 00:08:30,740
‫piattaforma, ma in realtà non lo abbiamo passato come argomento per spostare la piattaforma in tick.

120
00:08:30,740 --> 00:08:34,440
‫E vedrai che ho una piccola linea ondulata rossa qui file molto, molto.

121
00:08:34,490 --> 00:08:40,700
‫Dice che ci sono troppi pochi argomenti nella chiamata di funzione perché l'ho definito nel file di

122
00:08:40,700 --> 00:08:46,130
‫intestazione e ora nel C++ oltre a richiedere un parametro di tipo float.

123
00:08:46,730 --> 00:08:48,710
‫Quindi devo fornire quel parametro.

124
00:08:48,710 --> 00:08:52,100
‫Quindi mi assicurerò che sia il parametro che sto fornendo.

125
00:08:52,100 --> 00:08:58,520
‫Il valore che sto fornendo proviene dalla variabile del tempo delta o dal parametro del tempo delta da tick.

126
00:08:59,030 --> 00:09:03,890
‫Quindi stiamo inserendo il valore, il valore viene passato in tick, quindi viene passato alla

127
00:09:03,890 --> 00:09:11,930
‫piattaforma di spostamento e finisce in un parametro nella funzione della piattaforma MOVE in cui può essere utilizzato per eseguire e spostare la funzionalità

128
00:09:11,930 --> 00:09:12,800
‫della piattaforma.

129
00:09:12,800 --> 00:09:18,710
‫Quindi vorrei che creassi la tua funzione di rotazione della piattaforma che chiameremo da TIC.

130
00:09:19,010 --> 00:09:23,690
‫Quindi lo aggiungerai al file di intestazione come abbiamo fatto per la nostra funzione della piattaforma MOVE.

131
00:09:23,690 --> 00:09:26,360
‫Lo aggiungeremo anche al file C++ allo stesso modo.

132
00:09:26,360 --> 00:09:33,950
‫Quindi prendi i tuoi suggerimenti dal modo in cui lo abbiamo fatto per quelle funzioni e poi chiamalo dalla funzione tick.

133
00:09:34,250 --> 00:09:40,040
‫Assicurati di passare il tempo Delta e di definire tutti i parametri per consentirti di passare il tempo

134
00:09:40,520 --> 00:09:45,920
‫Delta e implementare il corpo della piattaforma Ruota in modo che si disconnette un messaggio.

135
00:09:45,920 --> 00:09:51,350
‫In realtà non ruoterà ancora la piattaforma, ma come segnaposto per assicurarsi che venga effettivamente chiamato

136
00:09:51,350 --> 00:09:56,120
‫un messaggio di registro utilizzando il registro dell'interfaccia utente di cui abbiamo appreso.

137
00:09:56,450 --> 00:09:58,160
‫Metti in pausa il video e prova.

138
00:10:01,630 --> 00:10:02,080
‫Bene.

139
00:10:02,080 --> 00:10:02,800
‫Ben tornato.

140
00:10:02,830 --> 00:10:09,070
‫Quindi inizieremo con il file di intestazione e per lo più faremo lo stesso che abbiamo fatto per la nostra

141
00:10:09,070 --> 00:10:10,020
‫piattaforma MOVE.

142
00:10:10,030 --> 00:10:14,380
‫Lo metteremo in una sezione privata in modo che sia accessibile solo all'interno della nostra classe.

143
00:10:14,890 --> 00:10:19,720
‫Gli darò un tipo di ritorno vuoto, lo chiameremo piattaforma rotante.

144
00:10:19,870 --> 00:10:21,400
‫Apriremo l'elenco dei parametri.

145
00:10:21,400 --> 00:10:25,180
‫E in esso inseriremo un parametro che avrà il tipo

146
00:10:25,180 --> 00:10:30,670
‫float, lo chiameremo Delta time e chiuderemo i parametri e finiremo con un punto e virgola.

147
00:10:31,270 --> 00:10:36,280
‫Ora, la maggior parte di ciò che facciamo nel file C++ è esattamente la stessa che nell'intestazione del file.

148
00:10:36,280 --> 00:10:41,380
‫Quindi in realtà copierò questa riga, andrò al file C++ e ti mostrerò cosa è diverso.

149
00:10:41,800 --> 00:10:46,990
‫Quindi andrò su una nuova riga vuota alla fine del file, la incollerò e poi la differenza è che qui

150
00:10:46,990 --> 00:10:50,200
‫abbiamo bisogno dell'operatore di risoluzione dell'ambito e del nome della classe.

151
00:10:50,620 --> 00:10:57,820
‫Quindi avremo una piattaforma mobile, due punti, una piattaforma rotante dei due punti.

152
00:10:58,360 --> 00:11:01,330
‫Quindi abbiamo l'elenco dei parametri e quindi non abbiamo bisogno del punto e virgola alla fine.

153
00:11:01,330 --> 00:11:06,940
‫Quindi rimuovi il punto e virgola, aggiungi una nuova riga e attacca le parentesi graffe invece di una nuova riga tra quelle

154
00:11:06,940 --> 00:11:07,900
‫due parentesi graffe.

155
00:11:08,680 --> 00:11:12,010
‫Quindi quello che vogliamo fare qui è stampare un messaggio di registro.

156
00:11:12,010 --> 00:11:14,920
‫Quindi ho intenzione di digitare il tuo registro premi invio.

157
00:11:15,460 --> 00:11:17,260
‫Sarà solo un semplice messaggio visualizzato.

158
00:11:17,680 --> 00:11:24,190
‫E nel testo metterò il nome della nostra piattaforma.

159
00:11:24,550 --> 00:11:31,090
‫Quindi sarà la percentuale s, quindi digiteremo il punto rotante, il punto, il punto e poi

160
00:11:31,090 --> 00:11:32,530
‫passerò il nome.

161
00:11:32,530 --> 00:11:37,570
‫Ora potremmo inserirlo in una variabile, ma poiché qui è una riga piuttosto corta,

162
00:11:37,600 --> 00:11:44,980
‫digiterò solo stella, otterrò il nome e quindi inserirò le parentesi in modo da chiamare essenzialmente qui chiamando il nome

163
00:11:44,980 --> 00:11:45,580
‫get.

164
00:11:45,580 --> 00:11:48,040
‫Questa è l'espressione che si impadronisce della stringa.

165
00:11:48,370 --> 00:11:53,350
‫E poi stiamo convertendo quel risultato per inserirlo nel nostro messaggio di registro.

166
00:11:53,950 --> 00:12:00,010
‫Quindi, da tutte le nostre piattaforme, mi aspetto di vedere che la rotazione viene stampata, ma questo accadrà solo se lo

167
00:12:00,010 --> 00:12:01,360
‫chiamo effettivamente in tecnologia.

168
00:12:01,360 --> 00:12:09,130
‫Quindi andiamo alla funzione tick dopo che la piattaforma MOVE può aggiungere una nuova linea e chiamare la piattaforma di rotazione.

169
00:12:09,730 --> 00:12:11,290
‫E dobbiamo vedere.

170
00:12:11,290 --> 00:12:16,840
‫Quando apro le parentesi, mi dà un suggerimento che devo passare un argomento per il tempo Delta.

171
00:12:16,840 --> 00:12:21,340
‫Quindi, ancora una volta, passeremo la stessa variabile di tempo Delta da qui.

172
00:12:21,490 --> 00:12:24,790
‫E come ho detto, i nomi qui non devono essere gli stessi.

173
00:12:24,790 --> 00:12:28,480
‫Quindi questo tempo delta deve corrispondere al tempo delta all'interno della tecnologia.

174
00:12:29,080 --> 00:12:34,330
‫Ma potremmo invece scegliere di chiamare la variabile all'interno della data della piattaforma di rotazione.

175
00:12:34,330 --> 00:12:39,520
‫E ovunque lo usiamo all'interno della piattaforma rotante, dovremmo usare ADT, il nome del parametro e

176
00:12:39,520 --> 00:12:41,380
‫l'argomento può essere sostanzialmente diverso.

177
00:12:41,470 --> 00:12:46,840
‫Quindi saltiamo su Unreal e premiamo compila perché abbiamo apportato alcune modifiche al file di intestazione.

178
00:12:46,840 --> 00:12:52,930
‫La compilazione sarà leggermente più lunga rispetto a quando abbiamo appena modificato il file C++ e una volta completata

179
00:12:52,930 --> 00:12:57,580
‫la compilazione, andremo avanti e premiamo play e apriamo il registro di output.

180
00:12:58,030 --> 00:13:04,000
‫E puoi vedere che stiamo effettivamente visualizzando messaggi di registro su ciascuna delle piattaforme che ruotano.

181
00:13:04,000 --> 00:13:08,590
‫Quindi sembra che la nostra funzione venga effettivamente chiamata in tecnologia.

182
00:13:09,070 --> 00:13:09,580
‫Roba fantastica.

183
00:13:09,580 --> 00:13:14,830
‫Ora capiamo come creare le nostre funzioni che sono membri di una classe.

184
00:13:15,280 --> 00:13:21,250
‫È uno strumento molto utile per riutilizzare un codice, ma anche per organizzarlo proprio come era in Blueprint.

185
00:13:21,760 --> 00:13:23,470
‫Ci vediamo alla prossima lezione.

