﻿1
00:00:04,120 --> 00:00:04,630
‫Dobra.

2
00:00:04,630 --> 00:00:08,980
‫Tak więc naszym celem w tym filmie jest wprowadzenie śmierci dla naszych Pons.

3
00:00:08,980 --> 00:00:17,020
‫Więc jeśli zostanę trafiony kilka razy z naszej wieży, zobaczysz, że zniknąłem, ponieważ mój czołg

4
00:00:17,020 --> 00:00:17,770
‫zginął.

5
00:00:17,770 --> 00:00:23,650
‫A jeśli będę wystarczająco uzdolniony, jeśli zdołam pójść dalej i zniszczyć jednego z nich, zobaczysz, że on również

6
00:00:23,650 --> 00:00:24,220
‫zniknie.

7
00:00:24,220 --> 00:00:29,200
‫Więc zamierzamy wprowadzić śmierć dla tych pionków w tym filmie.

8
00:00:29,290 --> 00:00:31,240
‫Witam ponownie.

9
00:00:31,270 --> 00:00:36,790
‫Teraz już zadajemy obrażenia pionkom, gdy trafiają w nie pociski.

10
00:00:36,790 --> 00:00:40,600
‫Musimy teraz wymyślić, jak sobie poradzimy po śmierci.

11
00:00:40,600 --> 00:00:45,910
‫Oznacza to, że będziemy potrzebować jakiejś funkcji, aby poradzić sobie ze zniszczeniem konkretnego aktora.

12
00:00:45,910 --> 00:00:49,030
‫Więc stworzymy funkcję niszczenia uchwytu.

13
00:00:49,030 --> 00:00:55,510
‫Potrzebujemy również kości aktora do działania, co może pozwolić trybowi gry poradzić sobie z tym, co dzieje się,

14
00:00:55,510 --> 00:01:01,480
‫gdy aktor w naszym świecie umrze i będziemy nazywać tę funkcję zmarłego aktora, gdy wartość zdrowia osiągnie

15
00:01:01,480 --> 00:01:03,340
‫zero dla konkretnego pionka.

16
00:01:03,340 --> 00:01:07,630
‫Porozmawiajmy więc o trochę mapie drogowej dotyczącej tego, jak zamierzamy zaimplementować ten system.

17
00:01:07,630 --> 00:01:14,080
‫Wiemy, że mamy pocisk i woła on zadawanie obrażeń, a to powoduje, że funkcja

18
00:01:14,080 --> 00:01:18,610
‫przyjmująca obrażenia odpowiada na transmisję delegata w komponencie zdrowia.

19
00:01:18,610 --> 00:01:21,100
‫Więc musimy dowiedzieć się, co zrobić z tego miejsca.

20
00:01:21,100 --> 00:01:26,230
‫Cóż, nasz tryb gry może mieć funkcję do obsługi, gdy aktor umiera.

21
00:01:26,230 --> 00:01:30,370
‫Tak więc w otrzymanych obrażeniach możemy sprawdzić, czy zdrowie osiągnie zero.

22
00:01:30,370 --> 00:01:37,210
‫I w tym momencie możemy wywołać funkcję zmarłego aktora w trybie gry i stamtąd nasz pionek poradzi sobie

23
00:01:37,210 --> 00:01:38,440
‫z jego zniszczeniem.

24
00:01:38,440 --> 00:01:44,500
‫Tak więc ostatecznie od trybu gry będzie zależeć wywołanie funkcji niszczenia uchwytu na zmarłym

25
00:01:44,500 --> 00:01:45,010
‫aktorze.

26
00:01:45,010 --> 00:01:49,660
‫Mamy więc trochę planu gry, więc nakreślmy kroki, które należy podjąć, aby to wdrożyć.

27
00:01:49,660 --> 00:01:54,400
‫Najpierw stworzymy funkcję niszczenia uchwytów i umieścimy ją w podstawowej klasie pionków, aby poradzić

28
00:01:54,400 --> 00:01:58,900
‫sobie z funkcjonalnością, która powinna się wydarzyć, gdy którykolwiek z naszych pionków zginie.

29
00:01:58,900 --> 00:02:04,090
‫Zaimplementujemy to również w klasach czołgów i wież, ponieważ każda z nich będzie miała swoją

30
00:02:04,090 --> 00:02:09,520
‫własną unikalną funkcjonalność po śmierci, a następnie stworzymy funkcję zmarłego aktora i umieścimy ją w

31
00:02:09,520 --> 00:02:13,090
‫klasie trybu gry, abyśmy mogli wywołać zniszczenie uchwytu stamtąd.

32
00:02:13,090 --> 00:02:18,730
‫Następnie wywołamy funkcję obsługi zniszczenia w funkcji zgon aktora w trybie gry, a następnie

33
00:02:18,730 --> 00:02:23,320
‫możemy wywołać śmierć aktora z komponentu zdrowia, gdy zdrowie osiągnie zero.

34
00:02:23,320 --> 00:02:27,640
‫Zacznijmy więc od naszego pierwszego kroku tworzenia funkcji niszczenia uchwytu.

35
00:02:27,640 --> 00:02:33,430
‫Więc jestem tutaj w Base Pond H i chciałbym dodać tę funkcję niszczenia uchwytu.

36
00:02:33,430 --> 00:02:38,740
‫Teraz planuję wywołać to z trybu gry, co oznacza, że będzie to musiała być funkcja

37
00:02:38,740 --> 00:02:42,850
‫publiczna, więc mogę umieścić tę funkcję tutaj, w sekcji publicznej.

38
00:02:42,940 --> 00:02:46,840
‫To będzie nieważne i będę to nazywać radzenie sobie ze zniszczeniem.

39
00:02:47,890 --> 00:02:50,710
‫Teraz nie musi przyjmować żadnych parametrów wejściowych.

40
00:02:50,860 --> 00:02:55,360
‫Po prostu zajmie się zniszczeniem tego konkretnego pionka.

41
00:02:55,360 --> 00:03:01,840
‫Zaimplementujmy więc tę funkcję w pliku bazowym pionka CP i umieszczę ją tutaj pod

42
00:03:01,840 --> 00:03:02,770
‫konstruktorem.

43
00:03:02,770 --> 00:03:09,550
‫Więc mam do czynienia z destrukcją i zamierzam umieścić nazwę klasy bazowego pionka tuż przed nazwą

44
00:03:09,550 --> 00:03:10,180
‫funkcji.

45
00:03:10,180 --> 00:03:15,640
‫Teraz to będą rzeczy, które się wydarzą, gdy któryś z pionków opartych na pionku podstawowym zginie.

46
00:03:15,640 --> 00:03:21,040
‫Umieszczę więc tutaj a do zrobienia, które mówi, co zamierzamy zrobić w funkcji niszczenia uchwytu.

47
00:03:21,040 --> 00:03:26,800
‫Chciałbym zająć się tutaj wszystkimi efektami wizualnymi i dźwiękowymi, które mają związek z umieraniem pionka.

48
00:03:26,800 --> 00:03:32,860
‫Więc powiem tylko wizualne efekty dźwiękowe ukośnika i zostawimy to na tym, a pamiętajmy

49
00:03:32,860 --> 00:03:38,320
‫o zaimplementowaniu tego, kiedy dojdziemy do efektów specjalnych i dźwięków w tej części

50
00:03:38,320 --> 00:03:38,920
‫kursu.

51
00:03:38,920 --> 00:03:44,890
‫Teraz mamy tu obsługę niszczenia, ale chciałbym również umieścić funkcję niszczenia uchwytów zarówno w klasach czołgów, jak

52
00:03:44,890 --> 00:03:50,050
‫i wież, aby poradzić sobie z tym, co się stanie, gdy te pionki zginą.

53
00:03:50,050 --> 00:03:54,670
‫A najprostsza realizacja zniszczenia będzie prawdopodobnie dotyczyła naszej wieży.

54
00:03:54,670 --> 00:04:00,760
‫Przejdźmy więc do Wieży H i dodamy tutaj funkcję publiczną zwaną zniszczeniem uchwytu.

55
00:04:00,760 --> 00:04:09,130
‫Powiem więc void handle destroy, że zaimplementuję to i wieżę CP tuż pod funkcją

56
00:04:09,130 --> 00:04:10,060
‫tick.

57
00:04:10,060 --> 00:04:17,440
‫Więc tutaj jest haczyk, tutaj jest zniszczenie uchwytu i zamierzam poprzedzić nazwę funkcji taką

58
00:04:17,440 --> 00:04:18,130
‫wieżą.

59
00:04:18,130 --> 00:04:24,280
‫Teraz w funkcji niszczenia uchwytów dla wieży chciałbym wywołać wersję super, aby wywołać zniszczenie uchwytu

60
00:04:24,280 --> 00:04:29,800
‫w pionku bazy i uzyskać te efekty wizualne i dźwiękowe, gdy wieża zginie.

61
00:04:29,800 --> 00:04:35,650
‫Więc powiem super uchwyt destrukcji, aby upewnić się, że to zostanie wywołane.

62
00:04:35,650 --> 00:04:39,040
‫A potem po prostu zniszczę wieżę.

63
00:04:39,040 --> 00:04:40,390
‫Teraz widzieliśmy, jak to działa.

64
00:04:40,390 --> 00:04:45,820
‫Po prostu wywołujemy funkcję zniszczenia, a to zajmie się zniszczeniem wieży.

65
00:04:45,820 --> 00:04:52,960
‫Więc mogę to zapisać i zamknąć pliki wieży i CP, a teraz mogę umieścić funkcję zniszczenia

66
00:04:52,960 --> 00:04:54,910
‫uchwytu w klasie czołgu.

67
00:04:54,910 --> 00:05:01,570
‫Przejdę więc do tank i zadeklaruję tutaj funkcję publiczną pod funkcją tick, zwaną

68
00:05:01,570 --> 00:05:02,620
‫handlem destrukcją.

69
00:05:03,640 --> 00:05:10,870
‫I zamierzam przejść do Tank CP i zaimplementować to tuż pod tikiem tutaj, nie zapominając o

70
00:05:10,870 --> 00:05:13,360
‫poprzedzeniu nazwy funkcji z tankiem.

71
00:05:13,510 --> 00:05:17,950
‫Teraz, tak jak w klasie tower, chcielibyśmy nazwać zniszczeniem super uchwytu.

72
00:05:19,300 --> 00:05:22,120
‫W ten sposób uzyskamy efekty wizualne i dźwiękowe.

73
00:05:22,150 --> 00:05:24,910
‫Teraz, jeśli chodzi o czołg, zrobimy coś nieco innego.

74
00:05:24,940 --> 00:05:27,700
‫Wolałbym raczej schować czołg niż go zniszczyć.

75
00:05:27,700 --> 00:05:33,730
‫A potem możemy wyłączyć jego funkcjonalność TIC, aby nadal istniał na świecie, a my nadal go posiadaliśmy.

76
00:05:33,730 --> 00:05:35,740
‫Więc nadal mamy ten widok z kamery.

77
00:05:35,770 --> 00:05:38,610
‫Tylko, że nie będziemy mogli go zobaczyć ani przenieść.

78
00:05:38,620 --> 00:05:47,710
‫Aby ukryć zbiornik, możemy wywołać funkcję o nazwie set actor ukrytą w grze, a to zajmie wartość logiczną.

79
00:05:47,710 --> 00:05:51,400
‫A jeśli zdamy się na prawdę to skutecznie ukryjemy zbiornik.

80
00:05:51,430 --> 00:05:55,420
‫Teraz chciałbym również wyłączyć zaznaczanie i jest do tego funkcja.

81
00:05:55,420 --> 00:05:58,810
‫Nazywa się to ustawieniem aktora włączonym.

82
00:05:59,770 --> 00:06:05,260
‫A do tego podam false, co wyłączy tykanie zbiornika.

83
00:06:05,260 --> 00:06:08,800
‫Tak więc dbamy o naszą funkcję niszczenia uchwytu.

84
00:06:08,800 --> 00:06:11,590
‫Więc mamy naszą funkcję niszczenia uchwytu.

85
00:06:11,620 --> 00:06:16,020
‫Naszym kolejnym krokiem jest stworzenie funkcji zmarłego aktora w trybie gry.

86
00:06:16,030 --> 00:06:17,440
‫Więc zaimplementujmy to.

87
00:06:17,440 --> 00:06:25,870
‫Więc jestem tutaj w trybie dostrajania czołgów i tutaj mogę stworzyć funkcję zmarłego aktora, teraz planuję nazwać zmarłego aktora

88
00:06:25,870 --> 00:06:32,200
‫z klasy komponentu zdrowia, co oznacza, że musi to być również funkcja publiczna.

89
00:06:32,440 --> 00:06:37,590
‫Więc zamierzam dodać sekcję publiczną i stworzyć funkcję zmarłego aktora.

90
00:06:37,600 --> 00:06:40,930
‫Teraz to będzie nieważne i zamierzam nazwać to śmiercią aktora.

91
00:06:41,170 --> 00:06:48,460
‫I to może po prostu wziąć wskaźnik aktora o nazwie Dead Actor, a teraz możemy zaimplementować zmarłego aktora w trybie gry

92
00:06:48,460 --> 00:06:49,740
‫z czołgami tuningowymi.

93
00:06:50,110 --> 00:06:58,690
‫CP Umieszczę to tutaj i poprzedzi nazwę trybem dostrajania czołgów, a teraz mamy funkcję

94
00:06:58,690 --> 00:07:00,220
‫śmierci aktora.

95
00:07:00,220 --> 00:07:05,890
‫Teraz chciałbym sprawdzić, czy martwy aktor to czołg, co oznacza, że będę potrzebować zmiennej

96
00:07:05,890 --> 00:07:07,030
‫dla czołgu.

97
00:07:07,030 --> 00:07:09,460
‫Wróćmy więc do trybu gry z czołgami.

98
00:07:09,460 --> 00:07:16,540
‫Stworzę sekcję prywatną i dodam zmienną zbiornika, którą zamierzam zadeklarować

99
00:07:16,540 --> 00:07:17,290
‫dalej.

100
00:07:17,290 --> 00:07:23,290
‫Jest to wskaźnik zbiornika typu A i po prostu zadzwonię do tego zbiornika i będę musiał zainicjować

101
00:07:23,290 --> 00:07:27,760
‫go adresem stawu zbiornika, i mogę to zrobić i zacząć grać.

102
00:07:27,760 --> 00:07:33,640
‫Teraz widzieliśmy, że rozpoczęcie gry jest funkcją chronioną i zamierzamy ją chronić tutaj w trybie

103
00:07:33,640 --> 00:07:36,400
‫gry, abyśmy mogli nadpisać, rozpocząć, grać.

104
00:07:36,400 --> 00:07:44,110
‫Więc powiem wirtualna pustka, zacznij, graj, zastąp i mogę to zaimplementować tutaj w tuningu czołgów, w trybie

105
00:07:44,110 --> 00:07:44,580
‫gry.

106
00:07:44,860 --> 00:07:45,610
‫Tak.

107
00:07:45,640 --> 00:07:52,840
‫Więc to będzie void rozpocząć grę i zamierzam użyć czołgów tuningowych, nazwy klasy trybu gry.

108
00:07:52,990 --> 00:07:56,110
‫A pierwszą rzeczą, którą zamierzam zrobić, to wywołać super rozpoczęcie gry.

109
00:07:57,550 --> 00:08:03,040
‫W ten sposób otrzymujemy funkcjonalność rodzica i mogę zdobyć pionka gracza za pomocą statystyk gry.

110
00:08:03,040 --> 00:08:10,660
‫Więc zamierzam najpierw uwzględnić statystyki rozgrywki, a to jest w statystykach rozgrywki kismet slash, jak

111
00:08:10,660 --> 00:08:11,680
‫już widzieliśmy.

112
00:08:11,800 --> 00:08:17,290
‫I tutaj mogę wziąć Tanka i przypisać mu wartość statyki rozgrywki młodzieżowej.

113
00:08:18,230 --> 00:08:19,550
‫Dłoń gitarzysty.

114
00:08:20,360 --> 00:08:26,390
‫Teraz, to bierze obiekt kontekstu światowego, do którego możemy to wykorzystać, i zamierzam użyć zero jako

115
00:08:26,390 --> 00:08:30,200
‫indeksu gracza, ponieważ nasz czołg zawsze będzie zerem gracza.

116
00:08:30,200 --> 00:08:37,430
‫Teraz wiemy, że odtwarzacz odrzutowy -- zwraca wskaźnik A -- i czołg jest typu czołgu, klasy potomnej.

117
00:08:37,430 --> 00:08:43,910
‫Widzieliśmy, że musimy rzucić na to klasę czołgu, jeśli chcemy zapisać ten wynik we wskaźniku czołgu

118
00:08:43,910 --> 00:08:44,510
‫A.

119
00:08:44,510 --> 00:08:47,450
‫Więc najpierw dołączę nagłówek zbiornika.

120
00:08:47,450 --> 00:08:53,330
‫Więc powiem, że włącz czołg H, a potem zarzucę do czołgu.

121
00:08:53,390 --> 00:09:00,440
‫Więc powiem rzucanie na tank i rzucam wartość zwróconą przez get player --.

122
00:09:00,440 --> 00:09:02,900
‫Więc umieszczę to w nawiasach.

123
00:09:03,260 --> 00:09:08,720
‫A teraz będziemy mieli wskaźnik do gracza -- w postaci wskaźnika czołgu A.

124
00:09:08,720 --> 00:09:14,090
‫Więc teraz, gdy mamy zbiornik, możemy sprawdzić, czy nasz martwy aktor jest zbiornikiem.

125
00:09:14,090 --> 00:09:21,800
‫Możemy więc powiedzieć, że jeśli martwy aktor podwójny równa się zbiornikowi, teraz zbiornik może być zerowy.

126
00:09:21,800 --> 00:09:28,940
‫I to jest w porządku, ponieważ jeśli Tank jest pusty, a aktor jest martwy, odnosi się do samego zbiornika, wtedy sprawdzenie if zakończy się

127
00:09:28,940 --> 00:09:34,130
‫niepowodzeniem i tak naprawdę nie będziemy próbować uzyskać dostępu do wskaźnika zerowego, ponieważ nie dostaniemy się do

128
00:09:34,130 --> 00:09:35,060
‫jego wnętrza.

129
00:09:35,060 --> 00:09:41,900
‫Teraz, jeśli martwy aktor jest w rzeczywistości czołgiem, chciałbym wywołać funkcję zniszczenia uchwytu czołgu.

130
00:09:41,900 --> 00:09:44,870
‫Więc nazwiemy zniszczenie uchwytu czołgu.

131
00:09:45,680 --> 00:09:52,100
‫Teraz, po wywołaniu funkcji niszczenia uchwytu, chciałbym również wyłączyć wejście dla zbiornika zbiornika,

132
00:09:52,100 --> 00:09:58,550
‫abym mógł pobrać zbiornik i wywołać wbudowaną funkcję, którą zbiornik dziedziczy, zwaną disable input.

133
00:09:59,540 --> 00:10:03,200
‫Teraz wyłączenie wejścia wymaga kontrolera odtwarzacza A.

134
00:10:03,200 --> 00:10:10,430
‫Teraz wiemy, że klasa czołgu, jeśli wejdziemy tutaj do zbiornika H, ma tę zmienną ref kontrolera gracza,

135
00:10:10,430 --> 00:10:17,270
‫która jest wskaźnikiem do kontrolera gracza, dlatego zaczynam myśleć, że ref to bardzo okropna nazwa

136
00:10:17,270 --> 00:10:19,160
‫dla tej zmiennej .

137
00:10:19,160 --> 00:10:21,320
‫Ponieważ nie jest to odniesienie, jest wskaźnikiem.

138
00:10:21,320 --> 00:10:24,260
‫Prawie wolałbym nazwać to kontrolerem gracza czołgiem.

139
00:10:24,350 --> 00:10:27,200
‫Więc właściwie, dlaczego nie zmienimy nazwy?

140
00:10:27,200 --> 00:10:33,530
‫To jest coś, co programiści często robią, gdy zdają sobie sprawę, że nadali zmiennej, złą nazwę.

141
00:10:33,530 --> 00:10:36,290
‫Więc ten kod ma na to łatwy sposób.

142
00:10:36,290 --> 00:10:42,350
‫Mogę podświetlić tę zmienną i nacisnąć klawisz F dwa i prosi mnie o zmianę nazwy.

143
00:10:42,590 --> 00:10:45,710
‫Zadzwonię do tego kontrolera czołgu.

144
00:10:46,100 --> 00:10:47,480
‫Teraz sprawdź to.

145
00:10:47,480 --> 00:10:49,790
‫Tutaj nazywa się Tank Player Controller.

146
00:10:49,790 --> 00:10:54,350
‫Jeśli pójdę do Tank CP, zobaczę, że tutaj również zmieniono jego nazwę.

147
00:10:54,350 --> 00:11:00,530
‫Więc nie musiałem wchodzić i szukać go i znajdować każdą instancję odtwarzacza, kontrolera, ref.

148
00:11:00,530 --> 00:11:06,050
‫Mogę wyszukać kontroler gracza czołgu i zobaczyć, że jest on zmieniony wszędzie tam, gdzie jest używany.

149
00:11:06,050 --> 00:11:08,960
‫Więc to fajna umiejętność refaktoryzacji.

150
00:11:08,960 --> 00:11:15,650
‫W każdym razie, wracając tutaj, w trybie dostrajania czołgów, muszę wyłączyć wejście dla czołgu, a to

151
00:11:15,650 --> 00:11:17,180
‫wymaga kontrolera gracza.

152
00:11:17,360 --> 00:11:23,360
‫Więc najpierw sprawdzę, czy kontroler gracza czołgiem jest prawidłowy, mówiąc, czy czołg i muszę uzyskać

153
00:11:23,360 --> 00:11:25,550
‫dostęp do tego kontrolera gracza.

154
00:11:25,550 --> 00:11:30,440
‫Ale pamiętaj, że w tanku nasza zmienna kontrolera gracza jest prywatna.

155
00:11:30,440 --> 00:11:36,860
‫Teraz moglibyśmy to ujawnić i upublicznić, lub moglibyśmy utworzyć publiczną funkcję pobierającą dla tej zmiennej.

156
00:11:36,860 --> 00:11:40,340
‫Wolałbym zrobić publiczny getter, ponieważ jest to lepsza praktyka programistyczna.

157
00:11:40,340 --> 00:11:46,610
‫Więc tutaj, w sekcji publicznej, stworzę publiczny getter dla kontrolera czołgu.

158
00:11:46,610 --> 00:11:53,300
‫Teraz zwróci wskaźnik kontrolera gracza A i ta funkcja będzie się nazywać

159
00:11:53,630 --> 00:11:55,340
‫get tank player.

160
00:11:55,340 --> 00:12:02,900
‫Pobieracze kontrolerów to zazwyczaj nazwa zmiennej z get na początku, a także zwykle są one kosztem,

161
00:12:02,900 --> 00:12:09,830
‫ponieważ ta funkcja nie jest zaprojektowana do zmiany czegokolwiek w tej klasie, zwróci tylko

162
00:12:09,830 --> 00:12:10,970
‫kontroler gracza.

163
00:12:10,970 --> 00:12:16,760
‫Więc powiemy, że zwróć kontroler czołgu i to wszystko, co zamierza zrobić.

164
00:12:16,760 --> 00:12:22,760
‫Więc teraz, gdy mamy publiczną funkcję pobierającą dla kontrolera gracza czołgu, możemy uzyskać dostęp do

165
00:12:22,760 --> 00:12:25,640
‫kontrolera gracza tutaj z poziomu trybu gry.

166
00:12:25,880 --> 00:12:33,080
‫Więc powiemy, czy tank dostanie kontroler gracza czołgu i wywoła tę funkcję tutaj.

167
00:12:33,080 --> 00:12:38,450
‫A jeśli dotrzemy do wnętrza tej instrukcji, to kontroler gracza jest prawidłowy,

168
00:12:38,450 --> 00:12:45,590
‫więc możemy przenieść to wywołanie do wejścia wyłączającego czołg tutaj i przejdziemy do wyłączonego wejścia kontrolera

169
00:12:45,590 --> 00:12:46,400
‫czołgu.

170
00:12:48,400 --> 00:12:51,950
‫Więc tutaj też nazwiemy tanka, aby dostać kontroler gracza.

171
00:12:51,970 --> 00:12:57,910
‫Teraz, gdy uzyskujemy dostęp do kontrolera gracza, chciałbym również, aby kontrolery gracza

172
00:12:57,910 --> 00:13:03,640
‫pokazywały zmienną logiczną kursora myszy i ustawiły to na wartość false.

173
00:13:03,640 --> 00:13:08,830
‫Wyłączamy więc wprowadzanie danych i upewniamy się, że kursor myszy nie jest wyświetlany.

174
00:13:08,830 --> 00:13:13,400
‫Więc to zajmuje się obsługą funkcjonalności na wypadek śmierci czołgu.

175
00:13:13,420 --> 00:13:19,660
‫Teraz, jeśli martwy aktor nie jest czołgiem, chciałbym sprawdzić, czy jest to instancja

176
00:13:19,660 --> 00:13:21,010
‫klasy tower.

177
00:13:21,010 --> 00:13:23,200
‫Więc dodam jeszcze jeden, jeśli tutaj.

178
00:13:23,320 --> 00:13:26,410
‫Więc jaki będzie warunek dla tego elsejeśli tutaj?

179
00:13:26,440 --> 00:13:33,640
‫Cóż, chciałbym zobaczyć, czy martwego aktora można obsadzić w wieży A, co oznacza, że będę musiał

180
00:13:34,360 --> 00:13:35,800
‫uwzględnić klasę wieży.

181
00:13:35,890 --> 00:13:37,300
‫Więc włącz wieżę.

182
00:13:38,170 --> 00:13:40,270
‫A potem spróbuję rzucić.

183
00:13:40,270 --> 00:13:44,770
‫Więc powiem rzut, który bierze pod uwagę nawiasy kątowe i nawiasy.

184
00:13:44,770 --> 00:13:50,410
‫Rzucamy też wieżę, a to, co rzucamy, jest martwe.

185
00:13:50,410 --> 00:13:53,410
‫Aktor spróbuje obsadzić martwego aktora.

186
00:13:53,410 --> 00:13:59,410
‫Teraz możemy wziąć wynik tego rzutowania, przypisać go i utworzyć zmienną lokalną.

187
00:13:59,410 --> 00:14:09,310
‫Tutaj w trybie warunkowym możemy powiedzieć wskaźnik na wieżę i możemy nazwać tę zniszczoną wieżę i przypisać jej wartość

188
00:14:09,310 --> 00:14:11,470
‫zwróconą z tego rzutowania.

189
00:14:11,470 --> 00:14:18,250
‫A jeśli to zrobimy, to mamy dostęp do tego zniszczonego aktora, który jest naszym martwym aktorem rzuconym na

190
00:14:18,250 --> 00:14:18,660
‫wieżę.

191
00:14:18,670 --> 00:14:22,630
‫Teraz, jeśli to się powiedzie, przejdziemy do wnętrza elseif.

192
00:14:22,630 --> 00:14:24,670
‫A potem możemy zabrać nasze zniszczone.

193
00:14:25,490 --> 00:14:31,430
‫Wieżę i możemy po prostu wywołać zniszczenie uchwytu.

194
00:14:32,870 --> 00:14:39,800
‫Więc teraz mamy tutaj funkcję śmierci aktora w trybie gry, która wywołuje zniszczenie, a także obsługuje

195
00:14:39,800 --> 00:14:43,910
‫trochę więcej funkcji związanych ze śmiercią dla czołgu.

196
00:14:44,180 --> 00:14:45,980
‫Więc to zajmuje się krokiem drugim.

197
00:14:45,980 --> 00:14:52,220
‫Tworząc funkcję zmarłego aktora, a kiedy to robiliśmy, nazwaliśmy również funkcję zniszczenia uchwytu w funkcji

198
00:14:52,220 --> 00:14:53,540
‫śmierci aktora.

199
00:14:53,540 --> 00:14:58,150
‫Więc naszym ostatnim krokiem jest wezwanie aktora do śmierci, gdy zdrowie osiągnie zero.

200
00:14:58,160 --> 00:15:04,310
‫Teraz, aby wywołać tę funkcję, która istnieje w trybie gry, nasz komponent zdrowia będzie potrzebował

201
00:15:04,340 --> 00:15:07,250
‫zmiennej, która przechowuje adres trybu gry.

202
00:15:07,250 --> 00:15:10,340
‫Przejdźmy więc do naszej klasy komponentów zdrowotnych.

203
00:15:10,340 --> 00:15:16,100
‫Oto składniki zdrowia, a dodam tutaj zmienną prywatną na samym dole.

204
00:15:16,100 --> 00:15:25,730
‫Będzie to wskaźnik trybu gry w tuning czołgów typu A, który nazwiemy trybem gry w tuning czołgów.

205
00:15:25,730 --> 00:15:31,010
‫Teraz zamierzam to zadeklarować dalej, więc nie muszę tutaj dołączać jego pliku nagłówkowego, a następnie musimy uzyskać

206
00:15:31,010 --> 00:15:32,480
‫dostęp do trybu gry.

207
00:15:32,480 --> 00:15:38,990
‫Przejdźmy więc do komponentu zdrowia CP i jeśli przewinę w górę, widzę tutaj funkcję rozpoczęcia gry i jest to idealne

208
00:15:38,990 --> 00:15:41,690
‫miejsce, aby zapoznać się z trybem gry.

209
00:15:41,690 --> 00:15:44,840
‫Ponownie, umieszczenie go w konstruktorze jest za wcześnie.

210
00:15:44,840 --> 00:15:50,530
‫Zanim spróbujemy uzyskać do niego dostęp, musimy upewnić się, że tryb gry został skonstruowany i istnieje.

211
00:15:50,540 --> 00:15:57,200
‫Oto przydatna funkcja na statystyce gry o nazwie Pobierz tryb gry, która zwraca bieżącą bazę trybu gry

212
00:15:57,200 --> 00:16:01,610
‫lub null, jeśli nie można jej pobrać, tak jak na kliencie.

213
00:16:01,850 --> 00:16:07,730
‫Teraz klient ma do czynienia z programowaniem dla wielu graczy i nie musimy się tym martwić.

214
00:16:07,730 --> 00:16:14,930
‫Działamy na jedynej maszynie do naszej gry, więc przewińmy w dół i zobaczymy, że baza

215
00:16:14,930 --> 00:16:18,230
‫trybu gry przyjmuje obiekt kontekstu świata.

216
00:16:18,230 --> 00:16:24,080
‫To tylko obiekt na świecie, a widzieliśmy, jak radzić sobie z obiektami kontekstu świata.

217
00:16:24,080 --> 00:16:29,030
‫Tak więc istnieje to w statycznym h rozgrywki, więc weźmy to.

218
00:16:29,030 --> 00:16:35,330
‫A tutaj, w komponentach zdrowia, CP wklei nasz dodatek do statystyki rozgrywki, a następnie wywołamy tutaj

219
00:16:35,330 --> 00:16:37,490
‫tryb gry i zaczniemy grać.

220
00:16:37,790 --> 00:16:40,670
‫Więc powiemy, dostrojenie czołgów, tryb gry.

221
00:16:42,030 --> 00:16:44,380
‫I ustaw to na wartość ciebie.

222
00:16:44,400 --> 00:16:50,940
‫Statystyki rozgrywki otrzymują tryb gry i obiekt kontekstu świata.

223
00:16:50,940 --> 00:16:54,750
‫Przejdę do tego i teraz mamy tryb gry.

224
00:16:54,750 --> 00:17:01,080
‫Ale oczywiście zdobądź tryb gry, zwróć bazę trybu gry i próbujemy przechowywać ją w

225
00:17:01,080 --> 00:17:06,810
‫klasie potomnej, trybie dostrajania czołgów, co oznacza, że będziemy musieli rzucać.

226
00:17:06,810 --> 00:17:07,380
‫Zgadza się.

227
00:17:07,380 --> 00:17:17,580
‫Musimy więc powiedzieć, że rzucamy do trybu gry dostrajanie czołgów i rzucamy wynik z trybu gry.

228
00:17:17,580 --> 00:17:20,430
‫Więc umieszczę to w nawiasach.

229
00:17:20,430 --> 00:17:22,410
‫I używamy trybu gry dostrajanie czołgów.

230
00:17:22,410 --> 00:17:24,840
‫Więc zamierzam dołączyć ten plik nagłówkowy na górze.

231
00:17:24,840 --> 00:17:26,970
‫Więc powiem, że zawiera.

232
00:17:28,960 --> 00:17:32,120
‫Dostosuj tryb gry Tanks.

233
00:17:33,100 --> 00:17:36,960
‫Więc mamy tryb gry tutaj w komponencie zdrowia.

234
00:17:36,970 --> 00:17:44,080
‫Jesteśmy gotowi, aby zejść tutaj do otrzymanych obrażeń i sprawdzić, czy nasze zdrowie osiągnęło zero.

235
00:17:44,140 --> 00:17:52,060
‫W takim przypadku możemy użyć naszego wskaźnika trybu gry dostrajanie czołgów, aby wywołać funkcję, którą aktor zmarł,

236
00:17:52,060 --> 00:17:59,740
‫przechodząc do aktora, który zginął, a to będzie twoje wyzwanie, więc w klasie komponentu zdrowia w

237
00:17:59,740 --> 00:18:06,910
‫otrzymanych obrażeniach sprawdzisz, aby zobaczyć jeśli wartość zdrowia osiągnęła zero lub spadła poniżej zera.

238
00:18:06,940 --> 00:18:11,260
‫Jeśli tak jest, to aktor zginął w trybie gry.

239
00:18:11,260 --> 00:18:17,140
‫Ponieważ mamy wskaźnik do trybu gry, nie zapomnij najpierw sprawdzić, czy ten wskaźnik nie jest

240
00:18:17,140 --> 00:18:17,800
‫pusty.

241
00:18:17,800 --> 00:18:21,940
‫A kiedy zadzwonisz do zmarłego aktora, będziesz musiał przekazać aktora.

242
00:18:21,940 --> 00:18:25,000
‫Przekażesz zmarłego aktora.

243
00:18:25,000 --> 00:18:30,370
‫Zatrzymaj więc wideo i zaimplementuj to teraz w funkcji obrażeń odniesionych.

244
00:18:33,280 --> 00:18:33,670
‫Dobra.

245
00:18:33,670 --> 00:18:36,720
‫Więc już odjęliśmy obrażenia od zdrowia.

246
00:18:36,730 --> 00:18:41,220
‫Jesteśmy teraz gotowi, aby sprawdzić, czy ta wartość zdrowia osiągnęła zero.

247
00:18:41,230 --> 00:18:48,610
‫Więc powiem, czy zdrowie jest mniejsze lub równe zero F, a jeśli tak, to należy

248
00:18:48,610 --> 00:18:49,450
‫zadzwonić.

249
00:18:49,480 --> 00:18:55,090
‫Aktor zmarł teraz, ponieważ musimy sprawdzić, czy tryb gry jest prawidłowy.

250
00:18:55,090 --> 00:19:02,170
‫Mogę w tym miejscu umieścić reklamę, jeśli sprawdź i sprawdź, czy tryb gry dostrajanie czołgów jest prawidłowy.

251
00:19:02,170 --> 00:19:07,060
‫Jeśli ma wartość null, zwróci tutaj wartość false i nie dotrzemy do wnętrza instrukcji if.

252
00:19:07,540 --> 00:19:13,600
‫Jeśli więc dotrzemy do wnętrza instrukcji if, tryb gry tune tank jest ważny, a zdrowie osiągnęło

253
00:19:13,600 --> 00:19:14,050
‫zero.

254
00:19:14,050 --> 00:19:16,780
‫Więc możemy powiedzieć, dostrojenie czołgów, tryb gry.

255
00:19:17,980 --> 00:19:19,900
‫I możemy nazwać zmarłego aktora.

256
00:19:20,830 --> 00:19:27,160
‫A to wymaga aktora i wiemy, że aktor, który zmarł, będzie aktorem uszkodzonym.

257
00:19:27,160 --> 00:19:29,950
‫Więc przejdziemy do uszkodzonego aktora.

258
00:19:30,130 --> 00:19:33,640
‫A teraz możemy to skompilować i spojrzeć na tamto.

259
00:19:33,640 --> 00:19:35,380
‫Mamy udaną kompilację.

260
00:19:35,380 --> 00:19:37,180
‫Wróćmy więc do edytora.

261
00:19:37,180 --> 00:19:40,690
‫A tutaj w edytorze, dlaczego nie przetestujemy śmierci?

262
00:19:40,690 --> 00:19:45,790
‫Zobaczmy, czy uda mi się zniszczyć niektóre z tych czołgów, zanim sam zostanę zniszczony.

263
00:19:45,790 --> 00:19:47,680
‫To będzie wyzwanie.

264
00:19:47,710 --> 00:19:48,670
‫Och, jest jeden.

265
00:19:48,670 --> 00:19:52,030
‫Zabiłem jednego z nich, a drugiego dostałem.

266
00:19:52,030 --> 00:19:53,230
‫Och, i umarłem.

267
00:19:53,650 --> 00:20:01,840
‫Widać więc, że ta gra jest o wiele fajniejsza teraz, gdy dodaliśmy śmierć i zniszczenie do naszych stawów.

268
00:20:01,840 --> 00:20:03,550
‫Więc to jest świetne.

269
00:20:03,850 --> 00:20:11,050
‫Ok, więc chcę, żebyś mocno poklepał się po plecach, ponieważ w tym filmie zajmowaliśmy się

270
00:20:11,050 --> 00:20:18,010
‫śmiercią aktora, co wiąże się z sporą interakcją między tymi klasami w naszej grze.

271
00:20:18,100 --> 00:20:24,370
‫Teraz sposób realizacji śmierci polega na tym, że staw po prostu znika, co oznacza, że wciąż potrzebujemy kilku

272
00:20:24,370 --> 00:20:24,940
‫rzeczy.

273
00:20:25,030 --> 00:20:26,890
‫Potrzebujemy warunków wygranej przegranej.

274
00:20:26,890 --> 00:20:30,490
‫Potrzebujemy sposobu, aby pokazać graczowi, że wygrał lub przegrał grę.

275
00:20:30,490 --> 00:20:33,220
‫Potrzebujemy też tych efektów specjalnych.

276
00:20:33,340 --> 00:20:36,430
‫Potrzebujemy dźwięków, potrzebujemy eksplozji.

277
00:20:36,430 --> 00:20:39,520
‫Te rzeczy nadejdą bardzo, bardzo szybko.

278
00:20:39,520 --> 00:20:41,170
‫Więc gratulacje.

279
00:20:41,170 --> 00:20:46,570
‫Przebyłeś już długą drogę i zostało już tylko kilka kroków.

280
00:20:46,600 --> 00:20:48,310
‫Do zobaczenia w następnym filmie.

