﻿1
00:00:04,510 --> 00:00:05,290
‫Ciao e Benvenuto.

2
00:00:05,290 --> 00:00:10,810
‫In questa lezione, eseguiremo il refactoring del trigger del pool in modo che sia pronto per aggiungere altro

3
00:00:10,810 --> 00:00:11,350
‫codice.

4
00:00:11,350 --> 00:00:15,190
‫Al momento, stava sfuggendo di mano chi lo refactoring in una piccola funzione

5
00:00:15,190 --> 00:00:18,700
‫come questa che è davvero molto più semplice da leggere.

6
00:00:18,700 --> 00:00:21,070
‫Immergiamoci e vediamo come eseguire questo refactor.

7
00:00:22,220 --> 00:00:22,430
‫Bene.

8
00:00:22,430 --> 00:00:27,800
‫Quindi vogliamo mettere un po' di suono nel nostro gioco e il posto in cui lo faremo è nella pistola

9
00:00:27,800 --> 00:00:28,610
‫quando spariamo.

10
00:00:28,610 --> 00:00:30,050
‫Questo è il primo porto di scalo.

11
00:00:30,050 --> 00:00:33,290
‫Penso che un bel tipo di suono di sparo, un suono d'impatto sarebbe fantastico.

12
00:00:33,920 --> 00:00:39,230
‫L'unico problema è che quando sono tornato alla nostra funzione di attivazione del grilletto, ho notato che è diventato straordinariamente

13
00:00:39,230 --> 00:00:39,590
‫grande.

14
00:00:39,590 --> 00:00:41,120
‫Non si adatta a uno dei miei schermi.

15
00:00:41,120 --> 00:00:45,350
‫È anche un po' difficile leggere e capire dove metteremmo questa funzionalità.

16
00:00:45,740 --> 00:00:50,840
‫Quindi, mentre ci sforziamo per capire effettivamente quale sia la funzionalità qui, forse vale la pena fare

17
00:00:50,990 --> 00:00:56,780
‫un rapido refactor o estrarre alcune di queste cose in altri metodi in modo che non sia così difficile da

18
00:00:56,780 --> 00:00:57,260
‫leggere.

19
00:00:58,070 --> 00:01:03,140
‫Ora, se dai un'occhiata a questo codice e provi a capire quali sono le cose di

20
00:01:03,140 --> 00:01:08,510
‫base che sta facendo, vedrai che gran parte di questo è in realtà solo impostato per la nostra linea.

21
00:01:08,510 --> 00:01:12,020
‫Traccia l'intero pezzo dalla riga 28 fino alla 43.

22
00:01:12,560 --> 00:01:13,880
‫E cosa stiamo facendo?

23
00:01:13,880 --> 00:01:18,950
‫Bene, prendiamo la pedina del proprietario, poi controlliamo la ricezione del controller del proprietario, quindi otteniamo il

24
00:01:18,950 --> 00:01:23,810
‫viewport da quello, quindi otteniamo la posizione finale in base alla portata massima e poi passiamo

25
00:01:23,810 --> 00:01:26,570
‫in alcuni parametri di successo per ignorare le cose.

26
00:01:26,870 --> 00:01:33,550
‫Tutto questo è solo impostato per la nostra traccia di linea, quindi perché non lo estraiamo nella sua funzione qui?

27
00:01:34,220 --> 00:01:37,550
‫Andando a creare una nuova funzione privata in basso proprio in basso.

28
00:01:37,550 --> 00:01:45,680
‫Dopo le nostre variabili sarà di bool return perché vogliamo essenzialmente sostituire questa chiamata qui che restituisce

29
00:01:45,680 --> 00:01:52,220
‫il successo con una che ci dà anche il risultato di successo.

30
00:01:52,790 --> 00:01:59,960
‫Quindi lo faremo come qualcosa che chiamerò una funzione di tracciamento della pistola e avrà

31
00:01:59,960 --> 00:02:01,490
‫alcuni parametri qui.

32
00:02:01,520 --> 00:02:03,860
‫Vale a dire, uno di questi sarà il risultato di successo.

33
00:02:03,860 --> 00:02:07,370
‫Quindi premi risultato, e commerciale per renderlo un riferimento.

34
00:02:07,370 --> 00:02:10,070
‫E poiché non è un riferimento costante, sappiamo che è un parametro out.

35
00:02:10,190 --> 00:02:11,150
‫Chiamalo il successo.

36
00:02:11,150 --> 00:02:14,360
‫E in realtà potrebbe essercene un altro di cui abbiamo bisogno qui.

37
00:02:14,660 --> 00:02:21,920
‫Vale a dire, posso vedere che la rotazione sta uscendo da questo pezzo di codice e in realtà stiamo

38
00:02:21,920 --> 00:02:23,270
‫negando quella rotazione.

39
00:02:23,270 --> 00:02:26,600
‫Quindi quello che ci interessa davvero è la direzione delle riprese.

40
00:02:26,600 --> 00:02:28,550
‫Quindi forse è quello che dobbiamo cercare.

41
00:02:28,550 --> 00:02:31,850
‫Quindi creerò un parametro F vector out.

42
00:02:32,690 --> 00:02:37,400
‫Quindi vettore e commerciale e sarà questa direzione di tiro.

43
00:02:38,300 --> 00:02:41,750
‫Queste sono le due uscite che proverranno dalla traccia della pistola.

44
00:02:42,290 --> 00:02:45,350
‫Ora andiamo avanti e creiamo l'implementazione qui.

45
00:02:46,370 --> 00:02:53,210
‫E quello che vogliamo fare è essenzialmente copiare tutto questo codice in quello.

46
00:02:54,620 --> 00:02:55,460
‫Guarda come va.

47
00:02:56,330 --> 00:03:00,060
‫E vogliamo anche controllare questo scatto.

48
00:03:00,080 --> 00:03:00,710
‫Direzione.

49
00:03:01,520 --> 00:03:05,810
‫Tiralo fuori e attaccalo appena prima della fine.

50
00:03:05,810 --> 00:03:11,660
‫O forse solo dopo aver ottenuto la visuale del giocatore, possiamo impostare la direzione del tiro in modo che sia uguale

51
00:03:11,660 --> 00:03:13,100
‫al negativo della rotazione.

52
00:03:13,610 --> 00:03:19,160
‫Ma è importante notare qui che in realtà non vogliamo impostare una variabile locale.

53
00:03:19,160 --> 00:03:22,280
‫Quindi, se metti il tipo qui, imposterà una direzione di tiro locale.

54
00:03:22,610 --> 00:03:27,710
‫Vogliamo eliminarlo in modo che stia impostando la direzione dello scatto nei parametri AMP, il che in realtà

55
00:03:27,710 --> 00:03:32,340
‫significa che sta impostando la direzione dello scatto che passeremo nella funzione che lo chiama.

56
00:03:33,140 --> 00:03:34,700
‫Stesso discorso per il colpo.

57
00:03:34,700 --> 00:03:42,200
‫Abbiamo bisogno di rimuovere questo colpo locale in modo che il colpo passato nella traccia della linea singolo per canale sia il colpo

58
00:03:42,200 --> 00:03:44,030
‫passato nella traccia della pistola.

59
00:03:45,260 --> 00:03:50,750
‫E poi finalmente c'è qualcos'altro da fare è fare una linea che ora non è necessaria e anche questo avrà

60
00:03:50,750 --> 00:03:51,230
‫successo.

61
00:03:51,230 --> 00:03:56,180
‫Bene, dobbiamo solo restituire essere il risultato della traccia della linea singolo per canale.

62
00:03:56,180 --> 00:03:59,600
‫Questo dipenderà dal fatto che la nostra traccia di armi sia riuscita o meno.

63
00:03:59,870 --> 00:04:02,420
‫Quindi siamo riusciti a far durare un po' questo rientro.

64
00:04:02,420 --> 00:04:06,620
‫Ora possiamo adattare tutto su uno schermo ed è un po' più facile capire che, sì,

65
00:04:06,620 --> 00:04:09,140
‫tutto questo è correlato alla traccia di una pistola.

66
00:04:09,800 --> 00:04:14,930
‫Possiamo salire alla nostra pistola CP E ora possiamo impostare il nostro successo di base qui.

67
00:04:14,930 --> 00:04:23,900
‫Quindi, successo nel Pool B, dovremo impostare come traccia della pistola e dobbiamo passare alcuni parametri qui.

68
00:04:23,900 --> 00:04:26,720
‫Quindi dobbiamo ancora dichiararli da qualche parte se il risultato del successo.

69
00:04:28,190 --> 00:04:29,180
‫Sarà uno di questi.

70
00:04:29,440 --> 00:04:30,380
‫Sta per colpire.

71
00:04:30,890 --> 00:04:36,140
‫E l'altro sarebbe stato un vettore F chiamato direzione del tiro.

72
00:04:37,490 --> 00:04:39,180
‫E quelli saranno passati.

73
00:04:39,200 --> 00:04:42,170
‫Quindi avremo prima il colpo, poi la direzione del tiro.

74
00:04:44,090 --> 00:04:46,430
‫E poi punto e virgola alla fine lì.

75
00:04:46,880 --> 00:04:49,370
‫Quindi questo renderà tutto un po' più semplice.

76
00:04:49,640 --> 00:04:55,940
‫Tuttavia, non sto dicendo che abbiamo bisogno anche del controller del proprietario e non voglio che la traccia della pistola sia

77
00:04:55,940 --> 00:04:59,680
‫responsabile del controller del proprietario o dimentichi il controllo del proprietario.

78
00:04:59,690 --> 00:05:03,230
‫Non sembra che sia responsabilità di una traccia di armi per farlo.

79
00:05:03,560 --> 00:05:05,530
‫Suona bene per ottenere un successo.

80
00:05:05,540 --> 00:05:10,480
‫Suona bene per ottenere una direzione di tiro, ma ho intenzione di tracciare la linea per ottenere il controller del proprietario.

81
00:05:10,490 --> 00:05:17,630
‫Quindi, per questo, lo inserirò, inserirò tutto questo codice in un'altra funzione che entrambi possono

82
00:05:17,630 --> 00:05:18,560
‫chiamare.

83
00:05:19,130 --> 00:05:23,720
‫Quindi sarà una funzione che restituisce un controller.

84
00:05:24,970 --> 00:05:25,540
‫Stella.

85
00:05:26,590 --> 00:05:30,610
‫E lo chiameremo il controllore del proprietario del jet.

86
00:05:30,820 --> 00:05:32,080
‫E possiamo farlo a.

87
00:05:32,770 --> 00:05:38,710
‫Come sappiamo, non ha lo scopo di modificare nessuna delle variabili sulla nostra classe di armi.

88
00:05:39,130 --> 00:05:40,740
‫Creiamo quell'implementazione.

89
00:05:40,750 --> 00:05:47,380
‫Basta importare l'implementazione dalla traccia della pistola, correggere eventuali rientranze se necessario.

90
00:05:47,380 --> 00:05:52,030
‫E andremo avanti e restituiremo semplicemente il controllo del proprietario.

91
00:05:52,040 --> 00:05:53,860
‫Quindi non c'è bisogno di fare un controllo delle unghie qui.

92
00:05:54,310 --> 00:05:57,700
‫Quel controllo delle unghie che dobbiamo fare nella funzione che lo sta usando.

93
00:05:58,300 --> 00:06:02,920
‫Quindi solleveremo che non abbiamo nemmeno bisogno di impostare una variabile qui.

94
00:06:02,920 --> 00:06:04,630
‫Possiamo solo andare avanti e tornare.

95
00:06:06,620 --> 00:06:08,600
‫Quindi sarà abbastanza semplice.

96
00:06:08,600 --> 00:06:10,820
‫Possiedo un controller, ma non completamente.

97
00:06:11,300 --> 00:06:14,820
‫E poi imposteremo la variabile nella traccia della pistola.

98
00:06:14,840 --> 00:06:19,310
‫Quindi possiedo un controller otterrò il mio controller in questo modo.

99
00:06:20,440 --> 00:06:26,890
‫Che quindi eseguiamo un ritorno nullo a un ritorno anticipato nullo nella traccia della pistola, che a proposito, deve restituire un valore

100
00:06:26,890 --> 00:06:30,190
‫booleano perché la traccia della pistola sta restituendo un valore booleano.

101
00:06:30,820 --> 00:06:36,280
‫Quindi possiamo andare avanti e restituire false qui perché se non riusciamo a ottenere un controller, non possiamo tracciare una

102
00:06:36,280 --> 00:06:38,290
‫pistola, quindi non possiamo assolutamente colpire nulla.

103
00:06:39,280 --> 00:06:42,640
‫E poi abbiamo anche bisogno di quel controller proprietario più in alto.

104
00:06:43,870 --> 00:06:47,590
‫Laddove abbiamo un attore di successo, lo stiamo facendo subire danni.

105
00:06:48,310 --> 00:06:54,250
‫E fondamentalmente quello che vogliamo fare qui è ottenere il controllo del proprietario proprio qui dentro il nostro attore di successo.

106
00:06:54,250 --> 00:06:56,500
‫Quindi, se colpiamo un attore, otteniamo di nuovo il controller del proprietario.

107
00:06:56,890 --> 00:07:00,220
‫Ora, so che stanno chiamando un po' di traccianti di armi.

108
00:07:00,220 --> 00:07:03,160
‫Prendi un controller e lo rifaremo se colpiamo un attore.

109
00:07:03,640 --> 00:07:06,250
‫Ma questo accadrà solo ogni volta che colpiamo un attore.

110
00:07:06,280 --> 00:07:12,610
‫Quindi non mi dispiace ricalcolarlo due volte perché renderà il codice un po' più leggibile senza

111
00:07:12,610 --> 00:07:16,940
‫dover memorizzare variabili e stati che potrebbero non essere sincronizzati.

112
00:07:16,960 --> 00:07:17,850
‫Quindi ecco qua.

113
00:07:17,860 --> 00:07:24,160
‫Ora abbiamo il controller proprietario di cui abbiamo bisogno per subire danni e il grilletto Apple ha un aspetto molto migliore.

114
00:07:24,250 --> 00:07:25,210
‫Quindi è tutto per questa lezione.

115
00:07:25,210 --> 00:07:25,750
‫Uno veloce.

116
00:07:25,750 --> 00:07:30,910
‫Ho solo rifattorizzato il nostro grilletto in modo da avere una buona base su cui lavorare nella prossima lezione.

117
00:07:31,060 --> 00:07:31,660
‫E lo vedrò.

118
00:07:32,770 --> 00:07:37,030
‫Oh, e sembra che io abbia fatto un po' di booboo qui e loro salgono su un controller.

119
00:07:37,420 --> 00:07:42,580
‫Se provi e compilatore, non farà nulla perché questo valore restituito non sta effettivamente restituendo un

120
00:07:42,580 --> 00:07:43,180
‫puntatore.

121
00:07:43,210 --> 00:07:47,590
‫Quindi vogliamo restituire immediatamente il puntatore nullo in questo caso.

122
00:07:47,590 --> 00:07:50,350
‫Fondamentalmente non possiamo ottenere un pull e quindi non possiamo ottenere un controller.

123
00:07:50,350 --> 00:07:51,820
‫Quindi restituiamo un puntatore nullo.

