﻿1
00:00:04,710 --> 00:00:05,580
‫Hallo en welkom.

2
00:00:05,580 --> 00:00:10,890
‫In deze lezing gaan we ervoor zorgen dat de win-voorwaarde werkt, zodat ik alle vijanden in mijn level

3
00:00:10,890 --> 00:00:14,160
‫kan doden en het zal me dit win-scherm laten zien.

4
00:00:14,160 --> 00:00:16,320
‫HAREL Laten we erin duiken en kijken hoe het moet.

5
00:00:17,830 --> 00:00:22,170
‫We zouden dus graag willen dat onze speler dit spel daadwerkelijk kan winnen.

6
00:00:22,180 --> 00:00:23,500
‫Op dit moment kunnen ze dat niet.

7
00:00:24,040 --> 00:00:25,060
‫Dus hoe gaan we dat doen?

8
00:00:25,090 --> 00:00:27,020
‫Nou, je zou het op verschillende manieren kunnen doen.

9
00:00:27,040 --> 00:00:32,710
‫Een daarvan zou zijn wanneer Pawn Killed wordt genoemd en de pion niet de afspeelcontroller is.

10
00:00:32,710 --> 00:00:39,280
‫Maar dan kunnen we aftrekken van een variabele die zegt hoeveel lucht er in de wereld is, hoeveel we er moeten

11
00:00:39,280 --> 00:00:39,910
‫doden.

12
00:00:40,120 --> 00:00:43,750
‫En als dat tot nul daalt, kunnen we het spel beëindigen in het voordeel van de speler.

13
00:00:43,840 --> 00:00:49,480
‫Ik denk echter dat dat een beetje kwetsbaar is, omdat het vereist dat we hoeveel vijanden er in de wereld op

14
00:00:49,480 --> 00:00:54,160
‫twee plaatsen plaatsen, in wezen in de spelmodus moet zijn, maar het moet ook in de wereld zijn

15
00:00:54,160 --> 00:00:58,720
‫wanneer je de vijanden neerhalen en die twee kunnen uit de pas lopen, en dat gaat

16
00:00:58,720 --> 00:00:59,320
‫problemen veroorzaken.

17
00:00:59,860 --> 00:01:05,710
‫Dus de manier waarop ik dit het liefst zou doen, is door simpelweg te zeggen, laten we alle vijanden in de wereld tellen elke keer dat een pion wordt gedood,

18
00:01:05,710 --> 00:01:11,740
‫laten we een hertelling doen, een hoofdtelling van alle A. L. en kijk welke er

19
00:01:11,740 --> 00:01:12,910
‫nog leven.

20
00:01:13,030 --> 00:01:16,390
‫Als een van hen nog in leven is, zullen we het spel nog niet beëindigen.

21
00:01:16,640 --> 00:01:17,590
‫Plaats het spel is nog niet voorbij.

22
00:01:17,920 --> 00:01:22,840
‫Maar als ze allemaal dood zijn en de afspeelcontroller niet, dan heeft de speler gewonnen.

23
00:01:23,620 --> 00:01:29,170
‫Dus om dit te kunnen doen, moeten we een manier hebben om een spelercontroller te vragen of deze dood is

24
00:01:29,170 --> 00:01:29,920
‫of niet.

25
00:01:30,100 --> 00:01:31,930
‫Sorry, ik bedoel, de controller.

26
00:01:32,410 --> 00:01:35,770
‫Dus laten we op zoek gaan naar onze shooter-controller dot H.

27
00:01:36,460 --> 00:01:41,740
‫En wat we hier willen doen, is een nieuwe openbare methode creëren waarmee we kunnen vragen of deze dood is

28
00:01:41,740 --> 00:01:42,280
‫of niet.

29
00:01:42,430 --> 00:01:49,270
‫Dus we gaan doen dat een pool is gebaseerd, het is dood, en het zal een contrast zijn omdat het niet zou moeten veranderen

30
00:01:49,270 --> 00:01:52,660
‫wat er feitelijk in de controller gebeurt wanneer deze wordt aangeroepen.

31
00:01:53,530 --> 00:01:55,540
‫En we kunnen doorgaan en een implementatie maken.

32
00:01:56,570 --> 00:02:01,740
‫Nu zouden we de controle moeten hebben over een -- die ons kan vertellen of hij dood is of niet.

33
00:02:01,760 --> 00:02:07,730
‫Als we daar nog eens naar gaan kijken, kijken we naar het schietpersonage, dat een --.

34
00:02:07,730 --> 00:02:12,020
‫Denk eraan, we hebben al een dode contactfunctie daar.

35
00:02:12,230 --> 00:02:17,180
‫Dus wat we in wezen willen doen, is het verzoek doorgeven aan de schutter die ik nu bestuur.

36
00:02:17,480 --> 00:02:17,940
‫Ja.

37
00:02:17,960 --> 00:02:23,660
‫Eén ding is, je zou kunnen zeggen in de KML all game-modus, je zou de controller

38
00:02:23,660 --> 00:02:30,110
‫kunnen pakken, de -- die dat bestuurt, een cast kunnen doen en dan controleren of dat -- dood is.

39
00:02:30,530 --> 00:02:36,350
‫Dat is echter over het algemeen niet de beste methode, omdat het betekent dat als er

40
00:02:36,350 --> 00:02:43,460
‫plotseling iets verandert in de manier waarop we de dood berekenen en of de luchtcontroller verschillende soorten -- gaat besturen, we

41
00:02:43,460 --> 00:02:46,840
‫plotseling de spelmodus moeten veranderen, wat niet zin hebben.

42
00:02:46,850 --> 00:02:52,340
‫Het is dus beter om dit te doen en de doorgifte in de luchtregelaars robuuster te doen.

43
00:02:52,670 --> 00:02:58,730
‫Het weerhoudt ons ervan te rommelen in de binnenkant van de klas van iemand anders, wat over het algemeen betekent

44
00:02:58,730 --> 00:03:04,280
‫dat we kunnen beperken wanneer dingen veranderen, we kunnen beperken hoeveel klassen we moeten gaan en aanraken, bijwerken en

45
00:03:04,280 --> 00:03:06,680
‫veranderen, wat altijd een goede zaak is.

46
00:03:07,490 --> 00:03:13,130
‫Dus wat we willen doen is de -- en de -- casten om er zeker van te zijn dat het een shooter-personage is.

47
00:03:13,130 --> 00:03:14,150
‫Dus laten we een cast doen.

48
00:03:14,660 --> 00:03:17,030
‫Het wordt een schutter.

49
00:03:18,010 --> 00:03:23,200
‫Karakter en ik denk dat we het moeten doen, het moet bovenaan oogcontrole zijn om ervoor te zorgen dat

50
00:03:23,200 --> 00:03:25,720
‫we het personage van de shoot zo kennen.

51
00:03:26,230 --> 00:03:34,120
‫En dan gaan we de cast een get doen -- en we willen dit in een variabele opslaan,

52
00:03:34,420 --> 00:03:36,790
‫zodat het een shooter wordt.

53
00:03:37,030 --> 00:03:42,370
‫Karakteraanwijzer genaamd laten we het gecontroleerd noemen.

54
00:03:43,770 --> 00:03:44,490
‫Karakter.

55
00:03:46,000 --> 00:03:52,360
‫Ik kan het niet gewoon karakter noemen, want dat is al een variabele op de luchtcontroller en plaats een puntkomma aan het

56
00:03:52,360 --> 00:03:56,440
‫einde van de regel en we gaan controleren of dit null is of niet.

57
00:03:57,070 --> 00:04:03,730
‫Dus control character is niet gelijk aan null pointer, dan zouden we in staat moeten zijn om het te vragen naar zijn status of het dood

58
00:04:03,730 --> 00:04:04,720
‫is of niet.

59
00:04:05,140 --> 00:04:09,910
‫Dus we zouden in staat moeten zijn om dat gecontroleerde karakter terug te geven.

60
00:04:11,070 --> 00:04:12,120
‫Is dood.

61
00:04:12,780 --> 00:04:16,170
‫Kortom, we sturen het verzoek door naar ons controlekarakter.

62
00:04:16,500 --> 00:04:18,630
‫Als dat controlepersonage een schietpersonage is.

63
00:04:19,110 --> 00:04:22,260
‫Merk echter op dat we hier geen retourverklaring hebben.

64
00:04:22,260 --> 00:04:24,720
‫In het andere geval moeten we wel een retour hebben.

65
00:04:24,960 --> 00:04:26,580
‫Er moet altijd een terugkeer zijn.

66
00:04:26,850 --> 00:04:28,890
‫Als de retourwaarde niet ongeldig is.

67
00:04:29,280 --> 00:04:35,370
‫We moeten dus een return-statement buiten het if-statement plaatsen om het geval op te vangen waarin we nog

68
00:04:35,370 --> 00:04:37,680
‫niet binnen het if-statement zijn teruggekeerd.

69
00:04:38,160 --> 00:04:40,890
‫En hier gaan we gewoon zeggen, is dit personage dood?

70
00:04:40,920 --> 00:04:46,230
‫Nou ja, in wezen, als het niet zo waar is, is het in wezen dood.

71
00:04:46,650 --> 00:04:52,200
‫Als we geen pion hebben, als we geen pion beheersen, dan is deze luchtcontroller in wezen zo goed

72
00:04:52,200 --> 00:04:53,610
‫als dood voor ons.

73
00:04:54,120 --> 00:05:00,090
‫En dat kan gebeuren, want onthoud dat de pion zich losmaakt van zijn controller wanneer hij sterft.

74
00:05:01,110 --> 00:05:06,390
‫Dus we gaan terug naar de spelmodus en wat willen we hier doen?

75
00:05:07,080 --> 00:05:14,340
‫Wat we in wezen willen doen, is een volledige lus over alle i.

76
00:05:14,340 --> 00:05:16,410
‫De schutter, ik.

77
00:05:17,730 --> 00:05:19,050
‫In de wereld.

78
00:05:20,230 --> 00:05:22,120
‫En daarmee voor de lus.

79
00:05:22,690 --> 00:05:23,530
‫Wat willen we doen?

80
00:05:23,740 --> 00:05:25,690
‫We willen zien dat hij dood is.

81
00:05:27,400 --> 00:05:32,080
‫In wezen en of in wezen is niet dood.

82
00:05:33,100 --> 00:05:39,320
‫En als een van hen niet dood is, weten we meteen dat we niet alle lucht hoeven te controleren.

83
00:05:39,340 --> 00:05:44,080
‫Als er maar één man in leven regeert, is het spel nog niet voorbij.

84
00:05:44,080 --> 00:05:49,120
‫Dus we kunnen doen wat bekend staat als een vroege terugkeer, die je waarschijnlijk eerder

85
00:05:49,120 --> 00:05:54,180
‫hebt gezien, die deze functie gewoon verlaat zonder meer van de code erin uit te voeren.

86
00:05:54,190 --> 00:05:58,540
‫Dus alles na deze vroege terugkeer stopt met het uitvoeren van de volledige lus, stopt met het uitvoeren van iets

87
00:05:58,540 --> 00:05:59,770
‫nadat het stopt met uitvoeren.

88
00:06:00,640 --> 00:06:07,180
‫Maar dan kunnen we zeggen dat als we erin geslaagd zijn om deze volledige cirkel met succes te doorlopen zonder dat

89
00:06:07,180 --> 00:06:14,230
‫het vroegtijdig terugkeert, wat betekent dat er geen levende bondgenoten in de wereld zijn, we door moeten gaan en het spel moeten beëindigen.

90
00:06:15,070 --> 00:06:15,850
‫Simpel als dat.

91
00:06:16,150 --> 00:06:22,460
‫Een deel van de puzzel waar we hier naar moeten kijken, zijn de eindspeloproepen.

92
00:06:22,780 --> 00:06:25,780
‫Het spel is afgelopen op de spelercontroller.

93
00:06:25,840 --> 00:06:29,170
‫Laten we eens kijken hoe de shooter player controller hier momenteel mee omgaat.

94
00:06:29,200 --> 00:06:35,650
‫Als we naar zijn CP gaan, zien we momenteel dat het momenteel volledig negeert dat de winnaar van B momenteel

95
00:06:35,650 --> 00:06:38,350
‫negeert of het de winnaar is of niet.

96
00:06:39,340 --> 00:06:43,900
‫Dus wat we moeten doen is zeggen of B winnaar is.

97
00:06:45,030 --> 00:06:48,270
‫Dan gaan we iets anders doen.

98
00:06:49,080 --> 00:06:51,840
‫We gaan ons loss-scherm weergeven.

99
00:06:52,110 --> 00:06:55,890
‫Dus snijd hier deze regels die verantwoordelijk zijn voor het weergeven van het verliesscherm.

100
00:06:55,890 --> 00:06:59,940
‫Zet dat in de out-instructie en we zullen hoe dan ook in beide gevallen opnieuw opstarten.

101
00:07:00,810 --> 00:07:02,580
‫Dus momenteel is de be winnaar.

102
00:07:02,580 --> 00:07:03,460
‫Wat gaan we doen?

103
00:07:03,480 --> 00:07:11,550
‫Nou, we gaan gewoon door en maken waarschijnlijk ook een windscherm, wat redelijk eenvoudig zal

104
00:07:11,550 --> 00:07:12,410
‫zijn.

105
00:07:12,420 --> 00:07:16,200
‫We gaan naar ons headerbestand voor de shoot om een controller te spelen.

106
00:07:16,530 --> 00:07:21,750
‫We kunnen dupliceren, schermklasse verliezen en een schermklasse winnen.

107
00:07:21,750 --> 00:07:25,200
‫En hier kunnen we ook voor gaan en dit aanvechten.

108
00:07:25,200 --> 00:07:26,130
‫Een mini-uitdaging voor jou.

109
00:07:26,130 --> 00:07:29,490
‫Misschien ga je gang en stel het zo in dat het een win-scherm kan doen.

110
00:07:30,000 --> 00:07:30,630
‫Kay, welkom terug.

111
00:07:30,630 --> 00:07:33,120
‫Dus hopelijk heb je dat een kans gegeven.

112
00:07:33,120 --> 00:07:40,290
‫We gaan gewoon naar binnen en plaatsen de voorruit hier in plaats van alle verloren advertenties, in wezen al

113
00:07:40,290 --> 00:07:41,280
‫het andere.

114
00:07:42,870 --> 00:07:43,500
‫Zoals zo.

115
00:07:44,830 --> 00:07:51,760
‫We gaan door en compileren dit, gaan dan naar de editor en vinden

116
00:07:51,820 --> 00:07:53,610
‫onszelf de spelercontrollerklasse.

117
00:07:53,620 --> 00:07:56,680
‫En we zouden nu moeten zien dat er een lege voorruitklasse is.

118
00:07:57,010 --> 00:08:02,290
‫En wat we gaan doen is naar de gebruikersinterface gaan en ik ga het losse scherm dupliceren om de

119
00:08:02,350 --> 00:08:03,430
‫voorruit te bellen.

120
00:08:03,670 --> 00:08:05,800
‫En je zou de jouwe helemaal opnieuw kunnen maken als je dat zou willen.

121
00:08:05,800 --> 00:08:11,740
‫Maar ik ga het gewoon op dezelfde manier gebruiken, behalve dat ik de kleur voor groen ga veranderen.

122
00:08:12,680 --> 00:08:16,880
‫En zorg ervoor dat je wint in plaats van dat je verliest.

123
00:08:18,090 --> 00:08:21,770
‫Omdat de herstartlogica in feite gewoon hetzelfde zal zijn.

124
00:08:21,840 --> 00:08:25,590
‫Om de een of andere reden reset het mijn kleur dat ik gewoon het kleurenscherm opnieuw ga instellen.

125
00:08:25,620 --> 00:08:26,430
‫Oké, dus dat is geweldig.

126
00:08:26,430 --> 00:08:31,680
‫Maar we hebben nog steeds deze klomp pseudocode in de KML-spelmodus die niet is ingevuld.

127
00:08:31,710 --> 00:08:34,590
‫En dat komt omdat het jouw uitdaging is om de winst te berekenen.

128
00:08:34,980 --> 00:08:40,470
‫Vul de pseudocode in, gebruik het T actieve bereik van onder in die klasse om je te helpen.

129
00:08:40,830 --> 00:08:45,360
‫Gebruik de nieuwe is die functie die we op de controller hebben gemaakt en test deze uit.

130
00:08:45,360 --> 00:08:49,410
‫Kijk of je voorruit verschijnt als je alle lucht van de wereld doodt.

131
00:08:49,500 --> 00:08:53,370
‫Dus laat het gewoon achter met de pseudocode op je scherm zodat je ernaar kunt kijken.

132
00:08:54,030 --> 00:08:54,970
‫K Welkom terug.

133
00:08:54,990 --> 00:08:56,220
‫Dus laten we beginnen met de for-lus.

134
00:08:56,760 --> 00:08:59,020
‫Dus ik ga een voor wat doen we voor looping over?

135
00:08:59,040 --> 00:09:00,600
‫Het is deze keer geen controller.

136
00:09:00,600 --> 00:09:03,630
‫Het wordt de shooter-luchtcontroller.

137
00:09:03,630 --> 00:09:05,160
‫Dus we moeten dat hash opnemen.

138
00:09:06,120 --> 00:09:09,300
‫Het wordt de schutter.

139
00:09:10,250 --> 00:09:12,040
‫Luchtcontroller Don H.

140
00:09:13,110 --> 00:09:20,520
‫En dat betekent dat we over een Shooter II-controllerwinkel gaan lopen om de controller,

141
00:09:20,520 --> 00:09:30,060
‫de korte broek, een beetje af te koelen, en dan gaan we een acteursbereik opnieuw doen dat een shooter-luchtcontroller.

142
00:09:30,060 --> 00:09:33,810
‫We moeten deze twee typen op elkaar afstemmen en dan de wereld krijgen.

143
00:09:34,290 --> 00:09:36,290
‫Dus we doen het op dit niveau.

144
00:09:37,800 --> 00:09:42,450
‫En dan hebben we het lichaam van de volledige lus hier waar we gaan vragen of het niet dood is.

145
00:09:42,480 --> 00:09:47,820
‫Dus zo niet, dan is Controller Arrow dood.

146
00:09:49,660 --> 00:09:52,240
‫Eigenlijk zeggen dat we ervoor moeten zorgen dat we niet dood zijn.

147
00:09:52,720 --> 00:09:58,300
‫En als het niet dood is, gaan we gewoon door en keren we terug naar deze vroege terugkeer, omdat we weten dat het

148
00:09:58,300 --> 00:09:59,860
‫spel nog niet afgelopen kan zijn.

149
00:10:00,310 --> 00:10:05,860
‫En anders, als we de hele lus hebben doorlopen zonder terug te keren, moeten we het spel beëindigen omdat

150
00:10:05,980 --> 00:10:10,090
‫de speler moet hebben gewonnen, alle AI in het level moet hebben gedood.

151
00:10:10,600 --> 00:10:13,000
‫Dus in dit geval zouden we een eindspel kunnen doen.

152
00:10:13,250 --> 00:10:13,830
‫WAAR.

153
00:10:13,870 --> 00:10:15,060
‫Omdat de speler er een heeft.

154
00:10:15,430 --> 00:10:20,170
‫En dat zou alle spelercontrollers en luchtcontrollers in de buurt moeten informeren.

155
00:10:20,860 --> 00:10:21,370
‫Stoer.

156
00:10:21,430 --> 00:10:24,760
‫Laten we dat eerst eens doornemen en compileren.

157
00:10:24,940 --> 00:10:27,760
‫Dan ga ik naar Unreal om een toneelstuk te spelen.

158
00:10:27,790 --> 00:10:32,350
‫Om de een of andere reden denkt mijn redacteur dat ik in deze bewerking voor het bewerken van gespecificeerde kleuren zit, dus ik

159
00:10:32,350 --> 00:10:33,820
‫ga het gewoon afsluiten en opnieuw starten.

160
00:10:33,970 --> 00:10:38,610
‫Nu het gratis is opgestart, ga ik verder en druk ik op play en word ik vermoord.

161
00:10:38,620 --> 00:10:40,400
‫Ten eerste, ja, ik verlies nog steeds.

162
00:10:40,420 --> 00:10:41,080
‫Dat is geweldig.

163
00:10:41,090 --> 00:10:43,780
‫Laten we eens kijken of ik deze man kan doden voordat hij mij vermoordt.

164
00:10:44,670 --> 00:10:45,210
‫Laten we gaan.

165
00:10:45,210 --> 00:10:46,860
‫Boem, boem, boem, boem, boem, boem, boem.

166
00:10:47,220 --> 00:10:48,110
‫Ik verlies te snel.

167
00:10:48,120 --> 00:10:52,120
‫Laten we het pistool weer gaan zoeken en instellen.

168
00:10:52,140 --> 00:10:55,260
‫We hebben die schade van het pistool erg hoog.

169
00:10:55,290 --> 00:11:00,450
‫Voor testdoeleinden ga ik de schade deze keer terugbrengen naar misschien 20.

170
00:11:00,840 --> 00:11:02,940
‫Dus het is nog steeds snel, maar niet zo snel.

171
00:11:03,360 --> 00:11:06,240
‫Ga spelen en sla deze man een paar keer.

172
00:11:06,450 --> 00:11:12,160
‫En wat we daar zagen, was dat ik echt won omdat het level opnieuw begon.

173
00:11:12,180 --> 00:11:15,630
‫Dus als ik hem weer ga vermoorden, zie je dat er niets gebeurt.

174
00:11:15,630 --> 00:11:19,830
‫Het zegt in het berichtenlogboek dat het werd genoemd met een null-klasse.

175
00:11:19,830 --> 00:11:25,830
‫En de reden daarvoor, als we overgaan op een BP shooter player-controller, nogmaals, je kunt zien dat we onze

176
00:11:25,830 --> 00:11:27,300
‫voorruit niet hebben aangesloten.

177
00:11:27,360 --> 00:11:31,290
‫Een ding dat ik ben vergeten te doen, zodat ik kan gaan compileren, opslaan en spelen.

178
00:11:31,290 --> 00:11:37,740
‫En nu hopelijk, als ik deze man naar een nieuwe ondergang dood, win ik en ga ik over 5 seconden opnieuw beginnen.

179
00:11:38,100 --> 00:11:40,860
‫En ik wil je laten zien dat hetzelfde waar is.

180
00:11:41,070 --> 00:11:46,080
‫Als ik meer spelercontrollers in de wereld zet, moet ik ze allebei doden.

181
00:11:46,410 --> 00:11:49,890
‫Dus laten we gaan en het schutterkarakter hierheen halen.

182
00:11:50,670 --> 00:11:52,890
‫En dit wordt mijn tweede vijand om te doden.

183
00:11:52,890 --> 00:11:53,760
‫Dus dood deze man.

184
00:11:53,790 --> 00:11:54,210
‫Boom.

185
00:11:55,410 --> 00:11:56,640
‫En het heeft niet gewonnen.

186
00:11:56,880 --> 00:11:58,440
‫Dan loop ik naar de tweede man.

187
00:11:58,710 --> 00:11:59,050
‫Boom.

188
00:11:59,400 --> 00:12:00,570
‫En nu heb ik er een.

189
00:12:00,570 --> 00:12:05,010
‫Omdat ik alle alfa heb gedood, en we hoefden geen variabelen te veranderen om dat te doen.

190
00:12:05,010 --> 00:12:09,360
‫Omdat I for loop alle levenden elke keer vanaf het begin telt.

191
00:12:09,420 --> 00:12:12,230
‫Dus momenteel leven we nu in een vrij stille wereld.

192
00:12:12,240 --> 00:12:18,210
‫Dus in de volgende lezing wil ik een beetje gaan kijken naar hoe we wat audio kunnen maken.

193
00:12:18,300 --> 00:12:19,020
‫Ik zie je daar.

