﻿1
00:00:04,120 --> 00:00:04,630
‫Oké.

2
00:00:04,630 --> 00:00:08,980
‫Dus ons doel voor deze video is om de dood voor onze Pons te implementeren.

3
00:00:08,980 --> 00:00:17,020
‫Dus als ik een paar keer geraakt word vanuit onze toren, zul je zien dat ik verdwenen ben omdat mijn tank dood

4
00:00:17,020 --> 00:00:17,770
‫is.

5
00:00:17,770 --> 00:00:23,650
‫En als ik bekwaam genoeg ben, als ik door kan gaan en een van hen kan vernietigen, zul je zien dat het

6
00:00:23,650 --> 00:00:24,220
‫ook verdwijnt.

7
00:00:24,220 --> 00:00:29,200
‫Dus we gaan de dood voor deze pionnen implementeren in deze video.

8
00:00:29,290 --> 00:00:31,240
‫Hallo en welkom terug.

9
00:00:31,270 --> 00:00:36,790
‫Nu brengen we al schade toe aan de pionnen als ze worden geraakt door projectielen.

10
00:00:36,790 --> 00:00:40,600
‫We moeten nu uitzoeken hoe we na de dood zullen omgaan.

11
00:00:40,600 --> 00:00:45,910
‫Dit betekent dat we een soort functie nodig hebben om de vernietiging van een bepaalde acteur aan te pakken.

12
00:00:45,910 --> 00:00:49,030
‫Dus we gaan een handvatvernietigingsfunctie maken.

13
00:00:49,030 --> 00:00:55,510
‫We hebben ook een acteur-sterf nodig om te functioneren, waardoor de spelmodus kan omgaan met wat er gebeurt als

14
00:00:55,510 --> 00:01:01,480
‫een acteur in onze wereld sterft en we gaan deze acteur-dood-functie noemen wanneer de gezondheidswaarde nul bereikt

15
00:01:01,480 --> 00:01:03,340
‫voor een bepaalde pion.

16
00:01:03,340 --> 00:01:07,630
‫Dus laten we het hebben over een stappenplan voor hoe we dit systeem gaan implementeren.

17
00:01:07,630 --> 00:01:14,080
‫We weten dat we een projectiel hebben en het roept schade toe en dit resulteert in de schadeopnamefunctie

18
00:01:14,080 --> 00:01:18,610
‫die reageert op de uitzending van de afgevaardigde in de gezondheidscomponent.

19
00:01:18,610 --> 00:01:21,100
‫Dus we moeten uitzoeken wat we vanaf daar moeten doen.

20
00:01:21,100 --> 00:01:26,230
‫Welnu, onze spelmodus kan een functie hebben die moet worden afgehandeld wanneer een acteur sterft.

21
00:01:26,230 --> 00:01:30,370
‫Dus bij opgelopen schade kunnen we controleren of de gezondheid nul bereikt.

22
00:01:30,370 --> 00:01:37,210
‫En op dat moment kunnen we de acteur stierf-functie noemen in de spelmodus en van daaruit kan onze pion

23
00:01:37,210 --> 00:01:38,440
‫zijn vernietiging aan.

24
00:01:38,440 --> 00:01:44,500
‫Dus uiteindelijk is het aan de spelmodus om de functie voor het vernietigen van het handvat op de overleden acteur aan te

25
00:01:44,500 --> 00:01:45,010
‫roepen.

26
00:01:45,010 --> 00:01:49,660
‫Dus we hebben een beetje een spelplan, dus laten we de stappen schetsen die we moeten nemen om dit te implementeren.

27
00:01:49,660 --> 00:01:54,400
‫Eerst gaan we de functie voor het vernietigen van het handvat maken en we gaan dit in de basispionklasse

28
00:01:54,400 --> 00:01:58,900
‫plaatsen om de functionaliteit af te handelen die zou moeten gebeuren als een van onze pionnen sterft.

29
00:01:58,900 --> 00:02:04,090
‫En we zullen dit ook implementeren in de tank- en de torenklassen, aangezien ze elk hun

30
00:02:04,090 --> 00:02:09,520
‫eigen unieke functionaliteit hebben wanneer ze dood gaan, dan zullen we een acteur stierf-functie maken en deze in

31
00:02:09,520 --> 00:02:13,090
‫de spelmodusklasse plaatsen zodat we kunnen call handvat vernietiging vanaf daar.

32
00:02:13,090 --> 00:02:18,730
‫Daarna noemen we handvatvernietiging in de acteur stierf-functie in de spelmodus en dan kunnen we

33
00:02:18,730 --> 00:02:23,320
‫acteur dood noemen door de gezondheidscomponent wanneer de gezondheid nul bereikt.

34
00:02:23,320 --> 00:02:27,640
‫Dus laten we beginnen met onze eerste stap, het creëren van de functie voor het vernietigen van het handvat.

35
00:02:27,640 --> 00:02:33,430
‫Dus ik ben hier in Base Pond H en ik zou deze handgreepvernietigingsfunctie willen toevoegen.

36
00:02:33,430 --> 00:02:38,740
‫Nu ben ik van plan om dit vanuit de spelmodus aan te roepen, wat betekent dat het een openbare

37
00:02:38,740 --> 00:02:42,850
‫functie moet zijn, zodat ik deze functie hier in de openbare sectie kan plaatsen.

38
00:02:42,940 --> 00:02:46,840
‫Het zal nietig zijn en ik noem het de vernietiging van het handvat.

39
00:02:47,890 --> 00:02:50,710
‫Nu hoeft het geen invoerparameters meer te hebben.

40
00:02:50,860 --> 00:02:55,360
‫Het gaat gewoon de vernietiging van deze specifieke pion afhandelen.

41
00:02:55,360 --> 00:03:01,840
‫Dus laten we deze functie in het basispion CP-bestand implementeren en ik ga het hier onder de

42
00:03:01,840 --> 00:03:02,770
‫constructor plaatsen.

43
00:03:02,770 --> 00:03:09,550
‫Dus ik heb de vernietiging van de hand en ik ga de naam van een basispionklasse hier net voor de functienaam

44
00:03:09,550 --> 00:03:10,180
‫plaatsen.

45
00:03:10,180 --> 00:03:15,640
‫Dit zullen dingen zijn die gebeuren als een van de pionnen op basis van de basispion sterft.

46
00:03:15,640 --> 00:03:21,040
‫Dus ik ga hier een taak plaatsen die zegt wat we gaan doen in de functie voor het vernietigen van het handvat.

47
00:03:21,040 --> 00:03:26,800
‫Ik wil hier alle visuele en geluidseffecten afhandelen die te maken hebben met het sterven van de pion.

48
00:03:26,800 --> 00:03:32,860
‫Dus ik zeg alleen visuele slash-geluidseffecten en we laten het daarbij en we zullen eraan denken dit

49
00:03:32,860 --> 00:03:38,320
‫te implementeren wanneer we bij de speciale effecten en geluiden komen in dit gedeelte van de

50
00:03:38,320 --> 00:03:38,920
‫cursus.

51
00:03:38,920 --> 00:03:44,890
‫Nu hebben we hier handvatvernietiging, maar ik zou ook een handvatvernietigingsfunctie in zowel de tank- als torenklassen

52
00:03:44,890 --> 00:03:50,050
‫willen plaatsen om af te handelen wat er gebeurt als die pionnen sterven.

53
00:03:50,050 --> 00:03:54,670
‫En de meest eenvoudige implementatie van vernietiging zal misschien voor onze toren zijn.

54
00:03:54,670 --> 00:04:00,760
‫Dus laten we naar Toren H gaan en we voegen hier een openbare functie toe die de vernietiging van het handvat wordt genoemd.

55
00:04:00,760 --> 00:04:09,130
‫Dus ik ga zeggen void handvat vernietiging en ik ga dit implementeren en toren CP net onder de

56
00:04:09,130 --> 00:04:10,060
‫tick-functie.

57
00:04:10,060 --> 00:04:17,440
‫Dus vink hier de vernietiging van het handvat aan en ik ga de functienaam zomaar voorafgaan aan een

58
00:04:17,440 --> 00:04:18,130
‫toren.

59
00:04:18,130 --> 00:04:24,280
‫Nu in de handvatvernietigingsfunctie voor de toren, zou ik de superversie willen aanroepen, zodat handvatvernietiging in de

60
00:04:24,280 --> 00:04:29,800
‫basispion wordt genoemd en we die visuele en geluidseffecten krijgen wanneer een toren sterft.

61
00:04:29,800 --> 00:04:35,650
‫Dus ik ga zeggen: Super Handling Destructie, gewoon om ervoor te zorgen dat dat wordt genoemd.

62
00:04:35,650 --> 00:04:39,040
‫En daarna ga ik gewoon de toren vernietigen.

63
00:04:39,040 --> 00:04:40,390
‫Nu hebben we gezien hoe dit werkt.

64
00:04:40,390 --> 00:04:45,820
‫We noemen gewoon de vernietigingsfunctie, en dat zal de vernietiging van de toren afhandelen.

65
00:04:45,820 --> 00:04:52,960
‫Dus ik kan dit opslaan en de toren- en CP-bestanden afsluiten en nu kan ik een handvatvernietigingsfunctie

66
00:04:52,960 --> 00:04:54,910
‫in de tankklasse plaatsen.

67
00:04:54,910 --> 00:05:01,570
‫Dus ik ga naar de tank en verklaar hier een openbare functie onder de vinkfunctie

68
00:05:01,570 --> 00:05:02,620
‫genaamd 'handvatvernietiging'.

69
00:05:03,640 --> 00:05:10,870
‫En ik ga naar Tank CP en implementeer dit hier net onder tic, en vergeet niet om de functienaam vooraf

70
00:05:10,870 --> 00:05:13,360
‫te laten gaan aan een tank.

71
00:05:13,510 --> 00:05:17,950
‫Nu, net als in de torenklasse, zouden we superhandvatvernietiging willen noemen.

72
00:05:19,300 --> 00:05:22,120
‫En op die manier krijgen we die visuele en geluidseffecten.

73
00:05:22,150 --> 00:05:24,910
‫Voor de tank gaan we iets anders doen.

74
00:05:24,940 --> 00:05:27,700
‫Ik zou de tank liever verbergen dan vernietigen.

75
00:05:27,700 --> 00:05:33,730
‫En dan kunnen we zijn TIC-functionaliteit uitschakelen, zodat het nog steeds in de wereld zal bestaan en we het nog steeds zullen bezitten.

76
00:05:33,730 --> 00:05:35,740
‫Dus dat beeld krijgen we nog steeds van de camera.

77
00:05:35,770 --> 00:05:38,610
‫Alleen kunnen we het niet zien of verplaatsen.

78
00:05:38,620 --> 00:05:47,710
‫Dus om de tank te verbergen, kunnen we een functie genaamd set actor hidden in game aanroepen en hiervoor is een boolean nodig.

79
00:05:47,710 --> 00:05:51,400
‫En als we de waarheid passeren, zullen we de tank effectief verbergen.

80
00:05:51,430 --> 00:05:55,420
‫Nu wil ik ook graag ticking uitschakelen en daar is ook een functie voor.

81
00:05:55,420 --> 00:05:58,810
‫Het heet set actor tic ingeschakeld.

82
00:05:59,770 --> 00:06:05,260
‫En hiervoor ga ik vals doorgeven, waardoor het tikken voor de tank wordt uitgeschakeld.

83
00:06:05,260 --> 00:06:08,800
‫Dus dat zorgt voor onze handvatvernietigingsfunctie.

84
00:06:08,800 --> 00:06:11,590
‫Dus we hebben onze handvatvernietigingsfunctie.

85
00:06:11,620 --> 00:06:16,020
‫Onze volgende stap is het creëren van een acteur stierf-functie in de spelmodus.

86
00:06:16,030 --> 00:06:17,440
‫Laten we dat dus implementeren.

87
00:06:17,440 --> 00:06:25,870
‫Dus ik ben hier in de spelmodus Tune Tanks en hier kan ik de functie 'Actor stierf' maken, nu ben ik van plan 'Actor

88
00:06:25,870 --> 00:06:32,200
‫stierf' te noemen uit de klasse 'Gezondheidscomponent', wat betekent dat dit ook een openbare functie moet zijn.

89
00:06:32,440 --> 00:06:37,590
‫Dus ik ga een openbare sectie toevoegen en de functie 'Actor stierf' maken.

90
00:06:37,600 --> 00:06:40,930
‫Dit zal nietig zijn en ik noem het acteur overleden.

91
00:06:41,170 --> 00:06:48,460
‫En dit kan eenvoudigweg een acteur-aanwijzer genaamd Dead Actor nemen en nu kunnen we acteur stierf implementeren in de

92
00:06:48,460 --> 00:06:49,740
‫spelmodus Tune Tanks.

93
00:06:50,110 --> 00:06:58,690
‫CP Dus ik ga het hier plaatsen en de naam voorafgaan met een tune tanks-spelmodus en nu hebben we

94
00:06:58,690 --> 00:07:00,220
‫een acteur stierf-functie.

95
00:07:00,220 --> 00:07:05,890
‫Nu zou ik willen controleren of de dode acteur de tank is, wat betekent dat ik een variabele voor de

96
00:07:05,890 --> 00:07:07,030
‫tank nodig heb.

97
00:07:07,030 --> 00:07:09,460
‫Dus terug in tune tanks game mode.

98
00:07:09,460 --> 00:07:16,540
‫Ik ga een privégedeelte maken en ik ga een tankvariabele toevoegen die ik naar voren ga

99
00:07:16,540 --> 00:07:17,290
‫declareren.

100
00:07:17,290 --> 00:07:23,290
‫En het is van type A tankaanwijzer en ik ga deze tank gewoon noemen en ik moet dit initialiseren met

101
00:07:23,290 --> 00:07:27,760
‫het adres van de tankvijver, en ik kan dat doen en beginnen met spelen.

102
00:07:27,760 --> 00:07:33,640
‫Nu hebben we gezien dat beginnen met spelen een beveiligde functie is en we gaan het hier in de spelmodus

103
00:07:33,640 --> 00:07:36,400
‫beschermd houden, zodat we kunnen overschrijven, beginnen, spelen.

104
00:07:36,400 --> 00:07:44,110
‫Dus ik ga zeggen virtuele leegte, begin, speel, override, en ik kan het hier implementeren in tune tanks, game

105
00:07:44,110 --> 00:07:44,580
‫mode.

106
00:07:44,860 --> 00:07:45,610
‫Ja.

107
00:07:45,640 --> 00:07:52,840
‫Dus het wordt ongeldig om te beginnen met spelen en ik ga de melodietanks, de klassenaam van de gamemodus gebruiken.

108
00:07:52,990 --> 00:07:56,110
‫En het eerste wat ik ga doen, is super beginnen met spelen.

109
00:07:57,550 --> 00:08:03,040
‫Op die manier krijgen we ouderfunctionaliteit en kan ik de spelerpion krijgen met behulp van gameplay-statistieken.

110
00:08:03,040 --> 00:08:10,660
‫Dus ik ga eerst gameplay-statistieken opnemen en dat is in kismet slash-gameplay-statistieken, zoals we al

111
00:08:10,660 --> 00:08:11,680
‫hebben gezien.

112
00:08:11,800 --> 00:08:17,290
‫En hier kan ik Tank nemen en het de waarde van jeugdgameplay-statistieken toewijzen.

113
00:08:18,230 --> 00:08:19,550
‫Gitarist palm.

114
00:08:20,360 --> 00:08:26,390
‫Dit vereist een wereldcontext-object waarvoor we dit kunnen gebruiken, en ik ga nul gebruiken als de

115
00:08:26,390 --> 00:08:30,200
‫spelersindex omdat onze tank altijd speler nul zal zijn.

116
00:08:30,200 --> 00:08:37,430
‫Nu weten we dat jet player -- geeft een A terug -- pointer en tank is van het type A tank, een kindklasse.

117
00:08:37,430 --> 00:08:43,910
‫En we hebben gezien dat we daar een tankklasse naar moeten casten als we dit resultaat willen opslaan in een

118
00:08:43,910 --> 00:08:44,510
‫A-tankaanwijzer.

119
00:08:44,510 --> 00:08:47,450
‫Dus eerst ga ik de tankkop opnemen.

120
00:08:47,450 --> 00:08:53,330
‫Dus ik ga zeggen tank H erbij en dan ga ik naar een tank werpen.

121
00:08:53,390 --> 00:09:00,440
‫Dus ik ga zeggen cast naar een tank en ik cast de waarde die wordt geretourneerd door get player --.

122
00:09:00,440 --> 00:09:02,900
‫Dus ik ga dat hier tussen haakjes plaatsen.

123
00:09:03,260 --> 00:09:08,720
‫En nu hebben we een aanwijzer naar de speler -- in de vorm van een A-tankaanwijzer.

124
00:09:08,720 --> 00:09:14,090
‫Dus nu we de tank hebben, kunnen we controleren of onze dode acteur de tank is.

125
00:09:14,090 --> 00:09:21,800
‫Dus we kunnen zeggen dat als dode acteur dubbel gelijk is aan tank nu tank nul kan zijn.

126
00:09:21,800 --> 00:09:28,940
‫En dat is oké, want als Tank nul is en de dode acteur verwijst naar de tank zelf, dan zal de if-controle niet doorstaan

127
00:09:28,940 --> 00:09:34,130
‫en we zullen niet echt proberen toegang te krijgen tot een nulaanwijzer omdat we de binnenkant hiervan

128
00:09:34,130 --> 00:09:35,060
‫niet zullen halen.

129
00:09:35,060 --> 00:09:41,900
‫Nu, als de dode acteur in feite de tank is, dan zou ik de vernietigingsfunctie van de tankhandvat willen noemen.

130
00:09:41,900 --> 00:09:44,870
‫Dus we gaan tankhandvat vernietiging noemen.

131
00:09:45,680 --> 00:09:52,100
‫Nu, nadat ik de functie voor vernietiging van het handvat heb aangeroepen, wil ik ook de invoer voor de

132
00:09:52,100 --> 00:09:58,550
‫tankpod uitschakelen, zodat ik de tank kan krijgen en de ingebouwde functie kan aanroepen die de tank erft, de invoer uitschakelen.

133
00:09:59,540 --> 00:10:03,200
‫Voor het uitschakelen van invoer is nu een A-spelercontroller vereist.

134
00:10:03,200 --> 00:10:10,430
‫Nu weten we dat de tankklasse, als we hier in tank H komen, deze spelercontroller ref-variabele heeft, wat een

135
00:10:10,430 --> 00:10:17,270
‫verwijzing is naar een spelercontroller, daarom begin ik te denken dat ref een erg slechte naam is

136
00:10:17,270 --> 00:10:19,160
‫voor deze variabele .

137
00:10:19,160 --> 00:10:21,320
‫Omdat het geen referentie is, is het een pointer.

138
00:10:21,320 --> 00:10:24,260
‫Ik zou het bijna liever tank player controller noemen.

139
00:10:24,350 --> 00:10:27,200
‫Dus in feite, waarom gaan we niet verder en hernoemen dit?

140
00:10:27,200 --> 00:10:33,530
‫Dit is iets dat ontwikkelaars vaak doen als ze zich realiseren dat ze een variabele een slechte naam hebben gegeven.

141
00:10:33,530 --> 00:10:36,290
‫Dus deze code heeft een manier om dit gemakkelijk te doen.

142
00:10:36,290 --> 00:10:42,350
‫Ik kan deze variabele markeren en op de toets F twee drukken en hij vraagt me om de naam ervan te wijzigen.

143
00:10:42,590 --> 00:10:45,710
‫Ik ga deze tank player controller noemen.

144
00:10:46,100 --> 00:10:47,480
‫Bekijk dit nu eens.

145
00:10:47,480 --> 00:10:49,790
‫Het heet hier Tank Player Controller.

146
00:10:49,790 --> 00:10:54,350
‫Als ik naar Tank CP ga, zal ik zien dat het hier ook hernoemd is.

147
00:10:54,350 --> 00:11:00,530
‫Dus ik hoefde niet naar binnen te gaan en ernaar te zoeken en elke instantie van speler, controller, ref te vinden.

148
00:11:00,530 --> 00:11:06,050
‫Ik kan zoeken naar tankplayer-controller en zien dat het overal is veranderd waar het hier wordt gebruikt.

149
00:11:06,050 --> 00:11:08,960
‫Dus dat is een mooie refactoring-vaardigheid om te hebben.

150
00:11:08,960 --> 00:11:15,650
‫Dus hoe dan ook, hier in de spelmodus Tune Tanks, moet ik de invoer voor de tank uitschakelen en hiervoor

151
00:11:15,650 --> 00:11:17,180
‫is een spelercontroller vereist.

152
00:11:17,360 --> 00:11:23,360
‫Dus ik ga eerst controleren of de spelercontroller van de tank geldig is door te zeggen of tank en ik

153
00:11:23,360 --> 00:11:25,550
‫toegang moeten krijgen tot die spelercontroller.

154
00:11:25,550 --> 00:11:30,440
‫Maar onthoud dat in tank onze spelercontrollervariabele privé is.

155
00:11:30,440 --> 00:11:36,860
‫Nu kunnen we dit blootleggen en openbaar maken, of we kunnen een openbare getterfunctie voor deze variabele maken.

156
00:11:36,860 --> 00:11:40,340
‫Ik zou liever een openbare getter maken, want dat is een betere programmeerpraktijk.

157
00:11:40,340 --> 00:11:46,610
‫Dus hier in het openbare gedeelte, ga ik een openbare getter maken voor tankspelercontroller.

158
00:11:46,610 --> 00:11:53,300
‫Nu gaat het een A-speler-controller-aanwijzer retourneren en deze functie wordt get tank

159
00:11:53,630 --> 00:11:55,340
‫player genoemd.

160
00:11:55,340 --> 00:12:02,900
‫Controller getters zijn meestal de naam van de variabele met get vooraan, en ze worden ook meestal tegen kostprijs

161
00:12:02,900 --> 00:12:09,830
‫gemaakt, omdat deze functie niet is ontworpen om iets in deze klasse te veranderen, het gaat alleen de

162
00:12:09,830 --> 00:12:10,970
‫spelercontroller retourneren.

163
00:12:10,970 --> 00:12:16,760
‫Dus we gaan zeggen tank player controller terug te geven en dat is alles wat het gaat doen.

164
00:12:16,760 --> 00:12:22,760
‫Dus nu we een openbare getterfunctie hebben voor de tankspelercontroller, hebben we hier vanuit

165
00:12:22,760 --> 00:12:25,640
‫de spelmodus toegang tot de spelercontroller.

166
00:12:25,880 --> 00:12:33,080
‫Dus we gaan zeggen dat als tank een tank player-controller krijgt en die functie hier oproept.

167
00:12:33,080 --> 00:12:38,450
‫En als we de binnenkant van deze if-verklaring bereiken, dan is de spelercontroller geldig,

168
00:12:38,450 --> 00:12:45,590
‫dus we kunnen deze oproep naar de tank-uitschakelinvoer hier verplaatsen en we gaan over naar de uitgeschakelde invoer van

169
00:12:45,590 --> 00:12:46,400
‫de tankspeler-controller.

170
00:12:48,400 --> 00:12:51,950
‫Dus we noemen hier ook tank get player controller.

171
00:12:51,970 --> 00:12:57,910
‫Nu, terwijl we toegang hebben tot de spelercontroller, zou ik ook willen dat

172
00:12:57,910 --> 00:13:03,640
‫de spelercontrollers de muiscursor Boolean member-variabele tonen en dit op false zetten.

173
00:13:03,640 --> 00:13:08,830
‫Dus we schakelen invoer uit en we zorgen er ook voor dat de muiscursor niet wordt weergegeven.

174
00:13:08,830 --> 00:13:13,400
‫Dus dat zorgt voor het afhandelen van de functionaliteit voor wanneer de tank sterft.

175
00:13:13,420 --> 00:13:19,660
‫Nu, in het geval dat de dode acteur niet de tank is, wil ik dan graag controleren of het een instantie

176
00:13:19,660 --> 00:13:21,010
‫van de torenklasse is.

177
00:13:21,010 --> 00:13:23,200
‫Dus ik ga hier nog een toevoegen.

178
00:13:23,320 --> 00:13:26,410
‫Dus wat zal de voorwaarde zijn voor deze elseif hier?

179
00:13:26,440 --> 00:13:33,640
‫Ik zou graag willen zien of een dode acteur naar een A-toren kan worden geworpen, wat betekent dat ik de

180
00:13:34,360 --> 00:13:35,800
‫torenklasse moet opnemen.

181
00:13:35,890 --> 00:13:37,300
‫Dus inclusief toren.

182
00:13:38,170 --> 00:13:40,270
‫En dan ga ik proberen te casten.

183
00:13:40,270 --> 00:13:44,770
‫Dus ik ga zeggen cast, waarvoor punthaken en haakjes nodig zijn.

184
00:13:44,770 --> 00:13:50,410
‫En wat we ook gieten is een toren en wat we gieten is dood.

185
00:13:50,410 --> 00:13:53,410
‫Acteur zal proberen de dode acteur te casten.

186
00:13:53,410 --> 00:13:59,410
‫Nu kunnen we het resultaat van deze cast nemen en het toewijzen en een lokale variabele maken.

187
00:13:59,410 --> 00:14:09,310
‫Hier in de voorwaardelijke kunnen we een torenaanwijzer zeggen en we kunnen deze vernietigde toren noemen en de waarde toewijzen die door

188
00:14:09,310 --> 00:14:11,470
‫deze cast wordt geretourneerd.

189
00:14:11,470 --> 00:14:18,250
‫En als we dat doen, hebben we toegang tot deze vernietigde acteur, onze dode acteur die in een toren is

190
00:14:18,250 --> 00:14:18,660
‫gegoten.

191
00:14:18,670 --> 00:14:22,630
‫Als dit lukt, komen we bij de binnenkant van de elseif.

192
00:14:22,630 --> 00:14:24,670
‫En dan kunnen we onze vernietigde meenemen.

193
00:14:25,490 --> 00:14:31,430
‫Tower en we kunnen gewoon de vernietiging van het handvat noemen.

194
00:14:32,870 --> 00:14:39,800
‫Dus nu hebben we een acteur-dood-functie hier in de spelmodus die de vernietiging aanroept en ook wat

195
00:14:39,800 --> 00:14:43,910
‫meer aan de dood gerelateerde functionaliteit voor de tank afhandelt.

196
00:14:44,180 --> 00:14:45,980
‫Dus dat zorgt voor stap twee.

197
00:14:45,980 --> 00:14:52,220
‫Het creëren van een acteur stierf-functie en terwijl we toch bezig waren, noemden we ook handvatvernietiging in

198
00:14:52,220 --> 00:14:53,540
‫de acteur stierf-functie.

199
00:14:53,540 --> 00:14:58,150
‫Dus onze laatste stap is om de acteur overleden te noemen wanneer de gezondheid nul bereikt.

200
00:14:58,160 --> 00:15:04,310
‫Om deze functie in de spelmodus aan te roepen, heeft onze gezondheidscomponent een variabele nodig

201
00:15:04,340 --> 00:15:07,250
‫die het adres van de spelmodus opslaat.

202
00:15:07,250 --> 00:15:10,340
‫Dus laten we naar onze gezondheidscomponent gaan.

203
00:15:10,340 --> 00:15:16,100
‫Hier zijn gezondheidscomponenten, en ik ga hier onderaan een privévariabele toevoegen.

204
00:15:16,100 --> 00:15:25,730
‫En dit zal van het type A tune tanks game mode pointer zijn en we zullen deze tune tanks game mode noemen.

205
00:15:25,730 --> 00:15:31,010
‫Nu ga ik dit naar voren verklaren, zodat ik het headerbestand hier niet hoef op te nemen en dan moeten we

206
00:15:31,010 --> 00:15:32,480
‫toegang krijgen tot de spelmodus.

207
00:15:32,480 --> 00:15:38,990
‫Dus laten we naar gezondheidscomponent CP gaan en als ik naar boven scrol, zie ik hier de start play-functie en dat is de

208
00:15:38,990 --> 00:15:41,690
‫perfecte plek om de spelmodus te pakken te krijgen.

209
00:15:41,690 --> 00:15:44,840
‫Nogmaals, het is te vroeg om het in de constructor te plaatsen.

210
00:15:44,840 --> 00:15:50,530
‫We moeten ervoor zorgen dat de spelmodus is gemaakt en bestaat voordat we er toegang toe proberen te krijgen.

211
00:15:50,540 --> 00:15:57,200
‫Nu is hier een handige functie voor spelstatistieken genaamd Get Game Mode en er staat dat de huidige spelmodusbasis of

212
00:15:57,200 --> 00:16:01,610
‫nul wordt geretourneerd als deze niet kan worden opgehaald, zoals op de client.

213
00:16:01,850 --> 00:16:07,730
‫Nu op de client heeft het te maken met multiplayer-programmering en daar hoeven we ons geen zorgen over te maken.

214
00:16:07,730 --> 00:16:14,930
‫We draaien op de enige echte machine voor onze game, dus laten we naar beneden scrollen en we zullen

215
00:16:14,930 --> 00:16:18,230
‫zien dat een gamemodusbasis een wereldcontextobject nodig heeft.

216
00:16:18,230 --> 00:16:24,080
‫Dit is slechts een object in de wereld en we hebben gezien hoe we met wereldcontextobjecten moeten omgaan.

217
00:16:24,080 --> 00:16:29,030
‫Dus dit bestaat in gameplay static h, dus laten we dat opnemen.

218
00:16:29,030 --> 00:16:35,330
‫En hier in gezondheidscomponenten, plakt CP onze include voor gameplay-statistieken en dan bellen we hier de game-modus

219
00:16:35,330 --> 00:16:37,490
‫en beginnen we met spelen.

220
00:16:37,790 --> 00:16:40,670
‫Dus we gaan zeggen: tune tanks, game mode.

221
00:16:42,030 --> 00:16:44,380
‫En stel dat in op de waarde van jou.

222
00:16:44,400 --> 00:16:50,940
‫Gameplay-statistieken krijgen de gamemodus en voor het wereldcontextobject.

223
00:16:50,940 --> 00:16:54,750
‫Ik ga hierin slagen en nu hebben we de spelmodus.

224
00:16:54,750 --> 00:17:01,080
‫Maar natuurlijk krijg je de spelmodus, geeft een spelmodusbasis terug en we proberen het op te

225
00:17:01,080 --> 00:17:06,810
‫slaan in de kinderklasse, een spelmodus voor melodietanks, wat betekent dat we moeten casten.

226
00:17:06,810 --> 00:17:07,380
‫Klopt.

227
00:17:07,380 --> 00:17:17,580
‫Dus we moeten zeggen cast to a tune tanks game mode en we casten het resultaat vanuit get game mode.

228
00:17:17,580 --> 00:17:20,430
‫Dus ik ga dat tussen haakjes daar plaatsen.

229
00:17:20,430 --> 00:17:22,410
‫En we gebruiken de spelmodus Tune Tanks.

230
00:17:22,410 --> 00:17:24,840
‫Dus ik ga dat header-bestand bovenaan opnemen.

231
00:17:24,840 --> 00:17:26,970
‫Dus ik ga zeggen opnemen.

232
00:17:28,960 --> 00:17:32,120
‫Tune Tanks-spelmodus.

233
00:17:33,100 --> 00:17:36,960
‫Dus we hebben de spelmodus hier in de gezondheidscomponent.

234
00:17:36,970 --> 00:17:44,080
‫We zijn klaar om hier de opgelopen schade te bekijken en te kijken of onze gezondheid nul bereikt.

235
00:17:44,140 --> 00:17:52,060
‫En in dat geval kunnen we onze aanwijzer voor de spelmodus van tune tanks gebruiken om de functie acteur stierf op te

236
00:17:52,060 --> 00:17:59,740
‫roepen die stierf in de acteur die stierf en dit wordt jouw uitdaging, dus in de gezondheidscomponentklasse in opgelopen schade ga

237
00:17:59,740 --> 00:18:06,910
‫je controleren om te zien als de waarde van gezondheid nul heeft bereikt of onder nul is gegaan.

238
00:18:06,940 --> 00:18:11,260
‫Als dat het geval is, bel dan acteur die is overleden met behulp van de spelmodus.

239
00:18:11,260 --> 00:18:17,140
‫Aangezien we een verwijzing naar de spelmodus hebben, vergeet niet eerst te controleren of deze aanwijzer niet null

240
00:18:17,140 --> 00:18:17,800
‫is.

241
00:18:17,800 --> 00:18:21,940
‫En als je acteur dood noemt, moet je een acteur doorgeven.

242
00:18:21,940 --> 00:18:25,000
‫Je gaat de acteur doorgeven die stierf.

243
00:18:25,000 --> 00:18:30,370
‫Dus pauzeer de video en implementeer dit nu in de functie voor opgelopen schade.

244
00:18:33,280 --> 00:18:33,670
‫Oké.

245
00:18:33,670 --> 00:18:36,720
‫We hebben dus al schade van gezondheid afgetrokken.

246
00:18:36,730 --> 00:18:41,220
‫We zijn nu klaar om te controleren of die gezondheidswaarde nul heeft bereikt.

247
00:18:41,230 --> 00:18:48,610
‫Dus ik ga zeggen dat als gezondheid kleiner is dan of gelijk is aan nul F en als dat het geval is, dan is het gepast om

248
00:18:48,610 --> 00:18:49,450
‫te bellen.

249
00:18:49,480 --> 00:18:55,090
‫Acteur is nu overleden omdat we moeten controleren of de spelmodus geldig is.

250
00:18:55,090 --> 00:19:02,170
‫Ik kan hier een advertentie plaatsen als check en check om te zien of tune tanks game mode geldig is.

251
00:19:02,170 --> 00:19:07,060
‫Als het null is, zal het hier false retourneren en zullen we de binnenkant van het if-statement niet bereiken.

252
00:19:07,540 --> 00:19:13,600
‫Dus als we de binnenkant van de if-verklaring bereiken, is de spelmodus tune tanks geldig en heeft de gezondheid nul

253
00:19:13,600 --> 00:19:14,050
‫bereikt.

254
00:19:14,050 --> 00:19:16,780
‫Dus we kunnen zeggen tune tanks, game mode.

255
00:19:17,980 --> 00:19:19,900
‫En we kunnen acteur dood noemen.

256
00:19:20,830 --> 00:19:27,160
‫En hier is een acteur voor nodig en we weten dat de acteur die stierf de beschadigde acteur zal zijn.

257
00:19:27,160 --> 00:19:29,950
‫Dus we gaan over in een beschadigde acteur.

258
00:19:30,130 --> 00:19:33,640
‫En nu kunnen we dit samenstellen en daar naar kijken.

259
00:19:33,640 --> 00:19:35,380
‫We hebben een succesvolle compilatie.

260
00:19:35,380 --> 00:19:37,180
‫Dus laten we teruggaan naar de editor.

261
00:19:37,180 --> 00:19:40,690
‫En hier in de editor, waarom gaan we niet door en testen de dood?

262
00:19:40,690 --> 00:19:45,790
‫Eens kijken of ik enkele van deze tanks kan vernietigen voordat ik zelf vernietigd word.

263
00:19:45,790 --> 00:19:47,680
‫Dat wordt een beetje een uitdaging.

264
00:19:47,710 --> 00:19:48,670
‫O, er is er een.

265
00:19:48,670 --> 00:19:52,030
‫Ik heb er een vermoord en ik heb de tweede.

266
00:19:52,030 --> 00:19:53,230
‫O, en ik stierf.

267
00:19:53,650 --> 00:20:01,840
‫Je kunt dus zien dat dit spel een stuk leuker is nu we dood en verderf aan onze vijvers hebben toegevoegd.

268
00:20:01,840 --> 00:20:03,550
‫Dit is dus geweldig.

269
00:20:03,850 --> 00:20:11,050
‫Oké, dus wat ik wil dat je doet, is jezelf een enorm schouderklopje geven, want in deze video hebben

270
00:20:11,050 --> 00:20:18,010
‫we Actor Death behandeld, wat nogal wat interactie tussen deze klassen in onze game met zich meebrengt.

271
00:20:18,100 --> 00:20:24,370
‫De manier waarop de dood nu wordt geïmplementeerd, is dat de vijver gewoon verdwijnt, wat betekent dat we nog een paar dingen

272
00:20:24,370 --> 00:20:24,940
‫nodig hebben.

273
00:20:25,030 --> 00:20:26,890
‫We hebben win-verliesvoorwaarden nodig.

274
00:20:26,890 --> 00:20:30,490
‫We hebben een manier nodig om de speler te laten zien dat ze de wedstrijd hebben gewonnen of verloren.

275
00:20:30,490 --> 00:20:33,220
‫En die speciale effecten hebben we ook nodig.

276
00:20:33,340 --> 00:20:36,430
‫We hebben wat geluiden nodig, we hebben wat explosies nodig.

277
00:20:36,430 --> 00:20:39,520
‫Die dingen gaan heel, heel snel komen.

278
00:20:39,520 --> 00:20:41,170
‫Gefeliciteerd dus.

279
00:20:41,170 --> 00:20:46,570
‫Je hebt al een lange weg afgelegd en er zijn nog maar een paar stappen te gaan.

280
00:20:46,600 --> 00:20:48,310
‫Ik zie je in de volgende video.

