﻿1
00:00:04,420 --> 00:00:06,220
‫Ciao e bentornato.

2
00:00:06,250 --> 00:00:13,210
‫Ora, abbiamo già creato la capacità di gestire la morte per il carro armato e la torre, e abbiamo visto che ciò

3
00:00:13,210 --> 00:00:20,200
‫comportava alcuni passaggi aggiuntivi con il nostro carro armato poiché abbiamo avuto accesso al controller del giocatore per disabilitare l'input e disabilitare la

4
00:00:20,200 --> 00:00:22,120
‫visualizzazione del cursore del mouse.

5
00:00:22,150 --> 00:00:28,270
‫Ora vorremmo avere la nostra classe di controller del giocatore personalizzata in modo da poter aggiungere funzionalità

6
00:00:28,300 --> 00:00:30,210
‫che gestiranno questo per noi.

7
00:00:30,220 --> 00:00:36,010
‫E poi vorremmo creare un progetto basato su questa classe in modo da poter accedere ad alcune

8
00:00:36,010 --> 00:00:42,580
‫delle variabili esposte sul controller del giocatore come quale cursore del mouse mostrare una volta che iniziamo effettivamente a mostrare il

9
00:00:42,580 --> 00:00:43,630
‫cursore del mouse.

10
00:00:43,660 --> 00:00:50,020
‫Quindi creeremo una classe di controller del giocatore e aggiungeremo l'abilitazione e la disabilitazione della funzionalità di input.

11
00:00:50,020 --> 00:00:54,490
‫E poi creeremo un progetto e imposteremo il tipo di cursore del mouse nei progetti.

12
00:00:54,520 --> 00:00:58,030
‫Ora la creazione di questa classe è qualcosa che sai come fare.

13
00:00:58,030 --> 00:01:04,480
‫Quindi creerai una classe controller del giocatore per la tua sfida, creerai una nuova classe C++ e scegli

14
00:01:04,480 --> 00:01:07,300
‫il controller del giocatore come classe genitore.

15
00:01:07,300 --> 00:01:11,800
‫Chiama questo carri armati, controller del giocatore o qualcosa di appropriato del genere.

16
00:01:11,800 --> 00:01:15,760
‫E una volta che hai finito, crea un progetto basato su questa classe.

17
00:01:15,760 --> 00:01:21,340
‫Ora, una volta che hai il progetto, puoi assegnarlo come controller del giocatore predefinito nel progetto della

18
00:01:21,340 --> 00:01:22,330
‫modalità di gioco.

19
00:01:22,360 --> 00:01:25,180
‫Fallo nella modalità di gioco, progetto stesso.

20
00:01:25,360 --> 00:01:30,280
‫Metti in pausa il video e crea ora la classe controller del giocatore per il carro armato.

21
00:01:33,230 --> 00:01:33,680
‫Bene.

22
00:01:33,680 --> 00:01:34,790
‫Quindi sono tornato nell'editor.

23
00:01:34,790 --> 00:01:41,210
‫Farò clic con il pulsante destro del mouse su nuova classe C++ e scorro verso il basso e vedrò che il controller del lettore

24
00:01:41,210 --> 00:01:42,170
‫è un'opzione qui.

25
00:01:42,170 --> 00:01:48,320
‫Quindi selezionerò il controller del giocatore e nominerò i miei nuovi serbatoi di messa a punto del controller del giocatore.

26
00:01:49,110 --> 00:01:53,190
‫Giocatore, controller e fai clic su Crea classe.

27
00:01:53,190 --> 00:01:56,790
‫E qui ho la mia nuova classe di controller del giocatore.

28
00:01:56,820 --> 00:02:00,030
‫Ora il prossimo passo è creare un progetto basato su questo.

29
00:02:00,030 --> 00:02:06,060
‫Quindi sono tornato nell'editor e non ti ho detto di farlo, ma creerò una nuova cartella qui

30
00:02:06,060 --> 00:02:09,360
‫nella mia cartella dei progetti chiamata Player Controller.

31
00:02:10,440 --> 00:02:15,480
‫E se desideri la stessa struttura di cartelle, puoi creare questa cartella ora se non l'hai già

32
00:02:15,480 --> 00:02:19,170
‫fatto e quindi spostare il progetto del controller del giocatore in questa.

33
00:02:19,170 --> 00:02:23,610
‫Se non sai come spostare un progetto da una cartella all'altra, è abbastanza semplice.

34
00:02:23,640 --> 00:02:30,810
‫Vai alla cartella che contiene il progetto, fai clic e trascina nella cartella corretta e fai clic su

35
00:02:30,810 --> 00:02:31,740
‫sposta qui.

36
00:02:31,890 --> 00:02:36,900
‫Ora, non voglio spostare il mio proiettile in questa cartella, quindi farò semplicemente clic qui nel browser

37
00:02:36,900 --> 00:02:38,760
‫dei contenuti per annullare l'azione.

38
00:02:38,760 --> 00:02:41,370
‫Quindi ora ho una cartella del controller del lettore.

39
00:02:41,370 --> 00:02:47,760
‫Farò clic con il pulsante destro del mouse e cliccherò sulla classe del progetto e in questa ricerca cercherò i carri armati, il

40
00:02:47,760 --> 00:02:51,460
‫controller del giocatore e selezionerò quella classe e farò clic su Seleziona.

41
00:02:51,480 --> 00:02:57,180
‫Ora posso chiamare questo segnale acustico di sottolineatura per il controller del giocatore dei carri armati.

42
00:02:57,390 --> 00:02:59,070
‫Quindi ora ho un controller del giocatore.

43
00:02:59,070 --> 00:03:02,100
‫Ora devo impostarlo come controller del lettore predefinito.

44
00:03:02,100 --> 00:03:08,220
‫Quindi andrò alla cartella della modalità di gioco, aprirò il segnale acustico, sintonizza i carri armati, la modalità di gioco e aprirò il progetto completo.

45
00:03:08,220 --> 00:03:11,670
‫Editor E qui vedo la classe del controller del giocatore.

46
00:03:11,940 --> 00:03:18,690
‫Farò clic sul menu a discesa e selezionerò i carri armati BP, il controller del giocatore e compilerò, salverò

47
00:03:18,690 --> 00:03:19,950
‫e chiuderò quello.

48
00:03:19,950 --> 00:03:23,250
‫Quindi ora abbiamo la classe del controller del giocatore personalizzato.

49
00:03:23,250 --> 00:03:25,680
‫Siamo pronti per aggiungere alcune funzionalità a questo.

50
00:03:25,680 --> 00:03:31,110
‫Quindi quello che vorrei è una funzione qui che può impostare lo stato abilitato del giocatore, indipendentemente dal fatto che il

51
00:03:31,110 --> 00:03:34,890
‫giocatore sia abilitato o meno ad aggiungere input che sposteranno il carro armato.

52
00:03:34,890 --> 00:03:39,690
‫Ora ho intenzione di richiamarlo dalla modalità di gioco quando l'attore muore.

53
00:03:39,690 --> 00:03:44,940
‫Quindi farò una sezione pubblica qui e la funzione sarà annullata.

54
00:03:44,940 --> 00:03:55,020
‫E chiamerò semplicemente questo stato abilitato per il lettore impostato, che può accettare un lettore booleano chiamato B

55
00:03:55,020 --> 00:03:55,950
‫abilitato.

56
00:03:56,550 --> 00:04:01,830
‫In questo modo, se chiamiamo questa funzione, possiamo passare true se vorremmo che il giocatore fosse

57
00:04:01,830 --> 00:04:04,620
‫abilitato o false se vorremmo che fosse disabilitato.

58
00:04:04,620 --> 00:04:09,090
‫Quindi implementiamo questa funzione in carri armati, giocatore, controller.

59
00:04:09,360 --> 00:04:14,100
‫CP Quindi ecco la mia funzione e ovviamente ho bisogno del nome della classe qui.

60
00:04:14,100 --> 00:04:20,370
‫Quindi sarà una messa a punto di carri armati, giocatore, controller e c'è l'operatore di risoluzione dell'oscilloscopio.

61
00:04:20,370 --> 00:04:22,860
‫Ora, questa funzione sarà abbastanza semplice.

62
00:04:22,860 --> 00:04:28,320
‫Controllerà il valore del giocatore B abilitato e possiamo farlo con un semplice se check.

63
00:04:28,320 --> 00:04:35,460
‫Quindi dirò se il giocatore B è abilitato e vorrei accedere al pedone e abilitare o disabilitare l'input e

64
00:04:35,460 --> 00:04:41,790
‫il modo per accedere al pedone che questo controller del giocatore possiede è usare la funzione, ottieni

65
00:04:41,790 --> 00:04:42,390
‫pedone.

66
00:04:42,390 --> 00:04:47,520
‫Questo restituisce e un pedone e la classe pedone ha la funzione.

67
00:04:47,520 --> 00:04:55,860
‫Abilita l'input e abilita l'input come abbiamo visto richiede un controller del giocatore in modo da poter passare questo.

68
00:04:56,190 --> 00:05:02,490
‫Ora ricevo gli scarabocchi rossi perché dobbiamo includere quel tipo di classe di pedone e possiamo facilmente

69
00:05:02,490 --> 00:05:09,090
‫vedere l'inclusione per il pedone andando alla documentazione del motore irreale per un pedone, oppure potremmo semplicemente andare

70
00:05:09,090 --> 00:05:13,890
‫alla nostra classe di pedone di base che eredita da una pedina.

71
00:05:14,070 --> 00:05:19,890
‫E poiché eredita da un pedone, abbiamo visto che deve includere l'intestazione del pedone lì, quindi posso

72
00:05:19,890 --> 00:05:23,430
‫copiarlo includendo la sua struttura di gioco, un pedone slash.

73
00:05:24,150 --> 00:05:26,850
‫Quindi torna in sintonia con il controller del giocatore dei carri armati.

74
00:05:26,850 --> 00:05:30,900
‫Posso incollare quell'inclusione qui in alto per sbarazzarmi di quegli scarabocchi rossi.

75
00:05:30,900 --> 00:05:37,470
‫Quindi questo si occupa del caso in cui il giocatore B abilitato è vero, ma abbiamo anche bisogno di un caso LS qui.

76
00:05:38,160 --> 00:05:45,210
‫Nel caso LS chiameremo get pewn e c'è una funzione proprio come enable input che è

77
00:05:45,210 --> 00:05:50,580
‫progettata per disabilitare l'input e si chiama, come puoi immaginare, disable input.

78
00:05:50,580 --> 00:05:55,020
‫E questo richiede anche un controller del giocatore per il quale passeremo in questo.

79
00:05:55,020 --> 00:06:00,480
‫Ora il controller del giocatore ha che mostra il cursore del mouse e imposteremo anche quello.

80
00:06:00,480 --> 00:06:04,500
‫E vorremmo impostarlo in base al fatto che il lettore debba essere abilitato o meno.

81
00:06:04,500 --> 00:06:10,950
‫Quindi, qualunque sia il valore booleano di B player abilitato, imposteremo B mostra il cursore del mouse su quel valore.

82
00:06:10,950 --> 00:06:18,090
‫Quindi diremo che il cursore del mouse B sho è uguale al giocatore B abilitato.

83
00:06:18,360 --> 00:06:20,730
‫Ora non abbiamo ancora mostrato il cursore del mouse.

84
00:06:20,730 --> 00:06:21,990
‫Stiamo per arrivare a quella parte.

85
00:06:21,990 --> 00:06:27,210
‫In realtà vorremmo vedere il cursore del mouse mentre stiamo giocando in modo da sapere dove sta mirando il nostro

86
00:06:27,210 --> 00:06:27,960
‫carro armato.

87
00:06:27,960 --> 00:06:29,490
‫Quindi ci arriveremo presto.

88
00:06:29,490 --> 00:06:35,490
‫Ma per ora abbiamo questa bella funzione nel controller del giocatore e vorremmo chiamare questa funzione dalla

89
00:06:35,490 --> 00:06:38,550
‫modalità di gioco ora per mostrarti cosa intendo.

90
00:06:38,550 --> 00:06:44,610
‫Sto tornando alla modalità di gioco ed ecco la funzione attore morto e vedrai che stiamo disabilitando l'input e stiamo

91
00:06:44,610 --> 00:06:47,070
‫impostando b mostra il cursore del mouse qui.

92
00:06:47,070 --> 00:06:48,450
‫Quindi il motivo per cui mi piacerebbe avere un.

93
00:06:48,540 --> 00:06:54,420
‫Funzione sul controller del lettore in modo che possiamo semplicemente chiamare quella funzione passando un valore booleano.

94
00:06:54,450 --> 00:07:00,600
‫In questo caso, passeremmo false in modo da ottenere quella funzione di input disabilita chiamata e B in modo che il cursore

95
00:07:00,600 --> 00:07:02,570
‫del mouse venga impostato su false.

96
00:07:02,580 --> 00:07:08,880
‫Quindi possiamo semplicemente chiamare quella funzione qui ora piuttosto che chiamare tank get player controller che restituisce un

97
00:07:08,880 --> 00:07:09,960
‫controller del giocatore.

98
00:07:10,050 --> 00:07:15,590
‫Mi piacerebbe avere una variabile puntatore che ci permetta di accedere a quel controller del giocatore.

99
00:07:15,600 --> 00:07:20,560
‫Quindi qui nelle modalità di gioco dei carri armati, aggiungerò una variabile privata.

100
00:07:20,580 --> 00:07:27,990
‫Lo dichiarerò avanti e sarà di tipo A carri armati, giocatore, controller, questo è un

101
00:07:27,990 --> 00:07:28,800
‫puntatore.

102
00:07:28,800 --> 00:07:35,640
‫E chiamerò questa melodia Tank's Player Controller e posso impostarla qui in modalità di gioco tune tank

103
00:07:35,640 --> 00:07:39,500
‫e iniziare a giocare usando le statistiche di gioco.

104
00:07:39,510 --> 00:07:45,360
‫Ora, se ti stai chiedendo se le statistiche di gioco avessero una funzione di controllo del giocatore, avevi ragione.

105
00:07:45,570 --> 00:07:51,630
‫Questa è una di quelle utili funzioni statiche che richiedono un oggetto del contesto mondiale e un indice del

106
00:07:51,630 --> 00:07:58,020
‫giocatore in modo che possiamo andare avanti e copiare l'inclusione per le statistiche di gioco e chiamarlo qui in Begin Play.

107
00:07:58,020 --> 00:08:02,970
‫Quindi vedo in alto qui, ho già delle statistiche di gioco, questo perché lo stiamo già usando qui e

108
00:08:02,970 --> 00:08:05,310
‫iniziamo a giocare per chiamare get player --.

109
00:08:05,310 --> 00:08:09,350
‫Faremo la stessa cosa qui per impostare il puntatore del controller del giocatore.

110
00:08:09,360 --> 00:08:11,400
‫Ora questo è qualcosa che dovresti sapere come fare.

111
00:08:11,400 --> 00:08:16,680
‫Quindi perché non metti in pausa il video e fai una piccola mini sfida qui e imposta semplicemente il valore dei

112
00:08:16,680 --> 00:08:18,060
‫carri armati, controller del giocatore.

113
00:08:20,990 --> 00:08:21,470
‫Bene.

114
00:08:21,470 --> 00:08:28,760
‫Quindi diremo sintonizzare carri armati, giocatore, controller e lo imposteremo uguale al risultato della tua statica di

115
00:08:28,760 --> 00:08:37,550
‫gioco ottieni il controller del giocatore e sappiamo che l'oggetto del contesto del mondo può essere questo e l'indice del giocatore

116
00:08:37,550 --> 00:08:40,160
‫non è nove ma zero .

117
00:08:40,160 --> 00:08:45,920
‫E ovviamente sappiamo che questo restituisce un controller del giocatore e non un controller del giocatore di carri armati.

118
00:08:45,920 --> 00:08:49,460
‫Quindi, proprio come abbiamo fatto con Tank qui, sceglieremo il cast.

119
00:08:49,460 --> 00:08:58,970
‫Quindi dirò cast a un controller giocatore tune tank e trasmetteremo il risultato di get player

120
00:08:58,970 --> 00:08:59,720
‫controller.

121
00:08:59,930 --> 00:09:05,270
‫Quindi ora, dopo Begin Play, avremo i carri armati, il controller del giocatore.

122
00:09:05,270 --> 00:09:11,870
‫E ora possiamo venire qui e invece di ottenere il controller del giocatore usando il controller del giocatore direttamente

123
00:09:11,870 --> 00:09:19,430
‫dal carro armato, possiamo verificare che il nostro controller del giocatore dei carri armati a sintonizzazione variabile sia valido e quindi possiamo

124
00:09:19,430 --> 00:09:21,830
‫chiamare quella funzione che abbiamo creato.

125
00:09:21,830 --> 00:09:23,090
‫Torniamo indietro e guardiamolo.

126
00:09:23,090 --> 00:09:30,620
‫Si chiama imposta lo stato abilitato del giocatore e qui nella modalità di gioco vorremmo disabilitare l'input e smettere di mostrare il cursore,

127
00:09:30,620 --> 00:09:33,650
‫il che significa che passeremo in false per questo.

128
00:09:33,650 --> 00:09:43,490
‫Quindi diremo sintonizzare carri armati, giocatore, controller, impostare lo stato abilitato per il giocatore e stiamo passando false per questo e stiamo usando tune

129
00:09:43,490 --> 00:09:49,340
‫tank, controller del giocatore, il che significa che dobbiamo includere tune tank, controller

130
00:09:49,340 --> 00:09:50,300
‫del giocatore.

131
00:09:50,300 --> 00:09:56,570
‫Quindi qui in alto includeremo i carri armati, il controller del giocatore.

132
00:09:57,620 --> 00:10:00,890
‫E ora abbiamo questo tipo definito OC.

133
00:10:00,890 --> 00:10:02,630
‫Andiamo avanti e compiliamo questo.

134
00:10:02,780 --> 00:10:08,630
‫E l'ultima cosa che faremo prima di concludere questo è andare nel nostro progetto del controller del giocatore

135
00:10:08,630 --> 00:10:15,320
‫e vorrei che scorri verso il basso fino alla sezione dell'interfaccia del mouse e vedrai che dice Cursore del mouse predefinito.

136
00:10:15,350 --> 00:10:19,730
‫Ora possiamo fare clic sul menu a discesa e ci sono diversi cursori tra cui scegliere.

137
00:10:19,730 --> 00:10:21,770
‫E sceglierò Crosshairs.

138
00:10:21,950 --> 00:10:27,830
‫Ora, non stiamo ancora mostrando il cursore del mouse, ma una volta avviato il gioco mostreremo il cursore.

139
00:10:27,830 --> 00:10:33,920
‫E quando lo facciamo, mi piace che sia un mirino invece della freccia bianca predefinita che vediamo sempre quando guardiamo il

140
00:10:33,920 --> 00:10:35,060
‫cursore del mouse.

141
00:10:35,060 --> 00:10:41,330
‫Quindi imposta il cursore del mouse predefinito sul mirino e saremo in grado di vedere quei mirini una volta

142
00:10:41,330 --> 00:10:43,040
‫abilitato il cursore del mouse.

143
00:10:43,040 --> 00:10:50,540
‫Quindi, in sintesi, abbiamo creato una classe di controller del giocatore personalizzata e la stiamo usando per abilitare o disabilitare l'input con

144
00:10:50,540 --> 00:10:53,420
‫una funzione che abbiamo posizionato su quella classe.

145
00:10:53,420 --> 00:10:59,420
‫E stiamo anche usando quella funzione per mostrare il cursore del mouse o nascondere il cursore del mouse in base al

146
00:10:59,420 --> 00:11:00,290
‫booleano passato.

147
00:11:00,290 --> 00:11:06,350
‫E nel progetto che abbiamo creato, impostiamo il tipo di cursore del mouse e vedremo molto presto come appare

148
00:11:06,350 --> 00:11:12,140
‫il cursore del mouse a mirino quando iniziamo a mostrare il cursore del mouse all'inizio del gioco.

149
00:11:12,140 --> 00:11:12,980
‫Quindi ottimo lavoro.

150
00:11:12,980 --> 00:11:18,620
‫Ora abbiamo questo controller del giocatore e siamo pronti per continuare a implementare le funzionalità di gioco.

151
00:11:18,620 --> 00:11:20,810
‫Allora ci vediamo nel prossimo video.

