﻿1
00:00:04,340 --> 00:00:05,510
‫Hallo en welkom.

2
00:00:05,510 --> 00:00:09,110
‫In deze lezing hebben we een A. L. die ons over de hele wereld volgt.

3
00:00:09,110 --> 00:00:11,540
‫We gaan het onderzoeken als hij me uit het oog verliest.

4
00:00:11,540 --> 00:00:13,430
‫Het is dus best moeilijk om te verliezen.

5
00:00:13,850 --> 00:00:20,030
‫Maar als ik te veel bochten weg ga, kan hij het niet bijbenen en uiteindelijk

6
00:00:20,030 --> 00:00:24,920
‫zal hij zijn interesse verliezen en teruggaan naar zijn startlocatie daar.

7
00:00:25,430 --> 00:00:30,800
‫Dat gaan we in deze lezing implementeren door onze gedragsboomtaak af te ronden.

8
00:00:31,070 --> 00:00:32,720
‫Laten we erin duiken en kijken hoe het gedaan is.

9
00:00:33,610 --> 00:00:38,280
‫Dus we willen onze taak laten uitvoeren, daadwerkelijk iets doen.

10
00:00:38,290 --> 00:00:42,190
‫En vooral wilden we dat Blackboard Valley kunnen opruimen, doen wat er op het blik staat.

11
00:00:42,880 --> 00:00:44,650
‫Dus hoe gaan we dat doen?

12
00:00:44,890 --> 00:00:49,180
‫Daarvoor moeten we naar onze basisklasse gaan en kijken wat daar is geïmplementeerd.

13
00:00:49,190 --> 00:00:55,290
‫Sterker nog, we moeten een niveau hoger, wat je kunt zien aan de overerving van

14
00:00:55,420 --> 00:00:57,790
‫de vrolijke taak Blackboard Base.

15
00:00:57,790 --> 00:01:00,250
‫Daarboven hebben we het UBC-taakknooppunt.

16
00:01:00,670 --> 00:01:05,290
‫Dus laten we F12 gebruiken om daar naar de implementatie te navigeren.

17
00:01:05,290 --> 00:01:12,640
‫En als je omhoog scrolt naar de bovenkant van het taakknooppunt in de balk, punt h hoofd van het bestand, kun je zien dat er informatie is

18
00:01:12,640 --> 00:01:13,690
‫over deze klasse.

19
00:01:13,690 --> 00:01:18,580
‫En het belangrijkste is dat dit de virtuele functies zijn die we waarschijnlijk

20
00:01:18,580 --> 00:01:19,690
‫willen implementeren.

21
00:01:20,350 --> 00:01:22,480
‫Dus de eerste is taak uitvoeren.

22
00:01:22,480 --> 00:01:25,780
‫Dit wordt aangeroepen wanneer de taak wordt uitgevoerd.

23
00:01:26,590 --> 00:01:32,710
‫We hebben dan een bordtaak, en dat is wanneer wordt besloten dat we moeten stoppen met uitvoeren, bijvoorbeeld

24
00:01:32,710 --> 00:01:37,030
‫omdat een voorwaarde onwaar is geworden en we die signalering hebben ingesteld.

25
00:01:37,030 --> 00:01:38,490
‫Dus het breekt deze taak af.

26
00:01:39,070 --> 00:01:43,690
‫Tick-taak gebeurt de hele tijd dat de taak wordt uitgevoerd, maar niet de eerste vink.

27
00:01:43,690 --> 00:01:49,330
‫Dus de eerste taak zal de taak uitvoeren noemen, daarna zal elke keer een vinktaak worden aangeroepen.

28
00:01:50,230 --> 00:01:56,140
‫En dat is voor gedrag dat langer dan één tik kan duren, zoals het verplaatsen naar een vijand kan

29
00:01:56,140 --> 00:01:57,160
‫meerdere tikken kosten.

30
00:01:57,520 --> 00:01:59,650
‫Dus tick task stelt ons in staat om iets te doen.

31
00:01:59,650 --> 00:02:05,230
‫Elk aangevinkt bericht is voor andere dingen dan het afbreken dat een bericht naar deze taak zou kunnen

32
00:02:05,230 --> 00:02:05,680
‫sturen.

33
00:02:05,920 --> 00:02:09,220
‫Over deze specifieke functie hoeven we ons geen zorgen te maken.

34
00:02:09,220 --> 00:02:10,750
‫Dus de eerste drie zijn klaar.

35
00:02:10,750 --> 00:02:16,870
‫Degenen waren meer geïnteresseerd in en aangezien het onze taak is om gewoon de schoolbordwaarde te

36
00:02:16,870 --> 00:02:21,200
‫wissen zodra het is uitgevoerd, en dan zal het meteen eindigen.

37
00:02:21,420 --> 00:02:23,890
‫Het hoeft geen dingen over meerdere vinkjes te doen.

38
00:02:24,190 --> 00:02:26,830
‫We zijn geïnteresseerd in de taak uitvoeren.

39
00:02:27,310 --> 00:02:33,670
‫Dus als we in deze kop van het bestand zoeken naar een taak uitvoeren, kunt u zien dat de volledige handtekening

40
00:02:33,670 --> 00:02:37,150
‫hier is en dat het retourtype hier dit IBT-knooppuntresultaat is.

41
00:02:38,200 --> 00:02:43,420
‫En er zijn twee dingen nodig, de eigenaarcomponent en het knooppuntgeheugen.

42
00:02:43,840 --> 00:02:48,820
‫De reden waarom het node-geheugen nodig heeft, is een

43
00:02:48,820 --> 00:02:58,860
‫beetje ingewikkeld, maar het belangrijkste om te weten is dat een taakklasse of taakklasse-instantie er slechts één is per alle schoolborden.

44
00:02:58,870 --> 00:03:04,930
‫In wezen worden ze door alles gedeeld, en daarom, als je wat informatie

45
00:03:04,930 --> 00:03:12,310
‫die gerelateerd is aan een knooppunt in een bepaalde gedragsboom wilt opslaan, je het in deze geheugenaanwijzer

46
00:03:12,310 --> 00:03:13,420
‫moet opslaan.

47
00:03:13,750 --> 00:03:16,150
‫Maar daar gaan we niets mee doen.

48
00:03:16,150 --> 00:03:18,520
‫Het is iets geavanceerder om dat te moeten doen.

49
00:03:18,700 --> 00:03:23,830
‫En er zijn andere manieren om dit te omzeilen, zoals Unreal toestaan om meerdere instanties te maken voor elke gedragsboom,

50
00:03:23,830 --> 00:03:28,390
‫wat misschien een beetje netjes is of niet, maar dit is een iets efficiëntere manier en we hoeven

51
00:03:28,390 --> 00:03:30,390
‫ons geen zorgen te maken over het.

52
00:03:30,400 --> 00:03:35,590
‫Waar we uiteindelijk in geïnteresseerd zijn, is het feit dat we bij onze eigenaarcomponent, de gedragsboomcomponent, kunnen komen en van daaruit

53
00:03:35,590 --> 00:03:40,900
‫kunnen we naar andere dingen gaan, zoals de pion, enz. Maar dat is ook het onderwerp

54
00:03:40,900 --> 00:03:43,150
‫van een andere lezing.

55
00:03:43,390 --> 00:03:48,760
‫Dus wat nu interessant en belangrijk is, is om de taak te implementeren en uit te voeren.

56
00:03:48,970 --> 00:03:55,270
‫Dus we gaan de handtekening kopiëren, naar Clear Blackboard Value Dot H gaan en eens kijken, is

57
00:03:55,270 --> 00:03:56,530
‫dit nu openbaar?

58
00:03:56,530 --> 00:03:59,830
‫Ik denk dat dit wordt beschermd omdat het in de standaardsectie staat.

59
00:04:00,130 --> 00:04:05,170
‫Dus we gaan een beschermde sectie voor onszelf maken en deze daar plakken en dan gaan we door en maken de

60
00:04:05,170 --> 00:04:08,440
‫plaats een override om er zeker van te zijn dat het veilig is.

61
00:04:08,440 --> 00:04:14,440
‫En dan gaan we een implementatie maken in de C ++, onthoudend dat we altijd

62
00:04:14,440 --> 00:04:21,460
‫naar super willen bellen wanneer we het overschrijven, dus super taak uitvoeren met de eigenaarcomponent en het knooppuntgeheugen

63
00:04:21,460 --> 00:04:24,370
‫dat hier naar onze ouder wordt opgeroepen.

64
00:04:24,430 --> 00:04:30,640
‫En dan willen we ons schoolbord pakken, zodat we de sleutel kunnen wissen.

65
00:04:30,730 --> 00:04:32,200
‫En er zijn twee dingen die hier belangrijk zijn.

66
00:04:32,200 --> 00:04:35,110
‫Allereerst, hoe weten we welke Key is geselecteerd?

67
00:04:35,110 --> 00:04:41,170
‫Welnu, als we naar ons schoolbord gaan op basis van H, kun je zien dat een van de methoden daar is om de

68
00:04:41,170 --> 00:04:42,280
‫geselecteerde schoolbordsleutel te krijgen.

69
00:04:42,280 --> 00:04:48,160
‫Dus je kunt dit eenvoudig elke C++ noemen, de geselecteerde schoolbordtoets krijgen en dat komt terug.

70
00:04:48,160 --> 00:04:54,010
‫Als we de muisaanwijzer erop plaatsen, wordt een F-naam geretourneerd, de F-naam van de schoolbordtoets die is geselecteerd in

71
00:04:54,040 --> 00:04:54,700
‫de gedragsstructuur.

72
00:04:54,700 --> 00:04:59,380
‫Nu, het andere dat we moeten doen, is om daadwerkelijk in staat te zijn om het bord met betrekking tot deze

73
00:04:59,380 --> 00:05:00,250
‫gedragsboom te bemachtigen.

74
00:05:00,250 --> 00:05:02,110
‫Dus daarvoor hebben we onze eigen comp.

75
00:05:02,500 --> 00:05:07,810
‫Merk nu op dat het type eigenaar dat hier wordt doorgegeven eigenlijk een referentie is, geen pointer.

76
00:05:08,110 --> 00:05:09,820
‫Het kan dus om te beginnen niet nul zijn.

77
00:05:09,820 --> 00:05:10,510
‫Dat is geweldig.

78
00:05:10,810 --> 00:05:15,520
‫Maar het betekent ook dat we de DOT-operator moeten gebruiken in

79
00:05:15,520 --> 00:05:21,820
‫plaats van de at-the-pijl-operator, omdat we geen aanwijzer gebruiken en van hieruit kunnen we gewoon schoolbordcomponenten krijgen.

80
00:05:21,940 --> 00:05:24,360
‫Dus dat krijgt gewoon de schoolbordcomponent als je erover zweeft.

81
00:05:24,370 --> 00:05:29,470
‫Deze is een verwijzing naar een schoolbordcomponent, dus u moet pijloperators gebruiken.

82
00:05:29,470 --> 00:05:32,650
‫We weten dus al hoe we toetsen op blackboard moeten wissen.

83
00:05:33,240 --> 00:05:34,500
‫Dat wordt jouw uitdaging.

84
00:05:34,530 --> 00:05:36,660
‫Dus hopelijk is de uitdaging niet te ingewikkeld.

85
00:05:36,670 --> 00:05:38,400
‫U wilt de geselecteerde sleutel wissen.

86
00:05:38,740 --> 00:05:41,520
‫We kunnen controleren waar we dit eerder hebben gedaan.

87
00:05:42,210 --> 00:05:44,850
‫Heeft u hiervoor insluitsels nodig?

88
00:05:44,850 --> 00:05:47,070
‫Misschien heeft het schoolbord het nodig.

89
00:05:47,070 --> 00:05:53,500
‫Gebruik de sleutel die is geselecteerd in uw gedragsstructuur als de sleutel die we willen wissen.

90
00:05:53,520 --> 00:05:55,320
‫Dus pauzeer de video en probeer het.

91
00:05:55,530 --> 00:05:55,920
‫Oké.

92
00:05:55,920 --> 00:05:56,460
‫Welkom terug.

93
00:05:56,790 --> 00:05:58,720
‫Dus laten we dit een kans geven.

94
00:05:58,740 --> 00:06:01,530
‫Dus het eerste is dat we onze schoolbordcomponent hebben.

95
00:06:01,530 --> 00:06:03,000
‫Laten we hier de pijloperator gebruiken.

96
00:06:03,330 --> 00:06:04,290
‫Er komt niets aan.

97
00:06:04,590 --> 00:06:11,850
‫Dus ik neem aan dat ik dat nodig heb, en er zijn inderdaad wat rode kronkels. Ik heb hier een hash nodig

98
00:06:11,850 --> 00:06:15,930
‫om de gedragsboom te doen en dan de schoolbordcomponent hier en nu.

99
00:06:15,930 --> 00:06:21,240
‫Hopelijk zou mijn autocomplete moeten werken, zodat ik het duidelijk kan hebben.

100
00:06:21,240 --> 00:06:23,550
‫Laten we proberen onze herinneringen op te frissen.

101
00:06:23,550 --> 00:06:25,150
‫Waar hebben we dit eerder gedaan?

102
00:06:25,170 --> 00:06:30,120
‫Als we gaan schieten, controleer ik A en kijk wat we hier hebben.

103
00:06:30,120 --> 00:06:31,440
‫We hebben een duidelijke waarde.

104
00:06:31,440 --> 00:06:32,730
‫Dat is degene die we zoeken.

105
00:06:32,730 --> 00:06:35,400
‫Dus laten we die duidelijke waarde eens proberen.

106
00:06:35,400 --> 00:06:36,510
‫En wat kost het?

107
00:06:36,510 --> 00:06:41,100
‫Er is een F-toets of een F-naam voor nodig, een geweldige f-naam die we kunnen krijgen.

108
00:06:41,490 --> 00:06:46,800
‫En waar zeiden we dat we dat konden krijgen met de toets 'Geselecteerde schoolbord' die in deze klas zit omdat deze in

109
00:06:46,800 --> 00:06:48,000
‫de bovenliggende klas zit.

110
00:06:48,000 --> 00:06:53,880
‫Dus selecteer Blackboard Key. Zo simpel is het, we wissen de waarde van de geselecteerde Blackboard Key.

111
00:06:53,910 --> 00:06:55,530
‫Nu, een laatste ding dat we moeten doen.

112
00:06:55,530 --> 00:06:57,030
‫Dit was geen onderdeel van de uitdaging, dus maak je geen zorgen.

113
00:06:57,030 --> 00:07:03,150
‫Als je dit niet wist, is dit dat we moeten terugkeren omdat er een retourwaarde is voor een duidelijke taak voor

114
00:07:03,180 --> 00:07:06,780
‫het uitvoeren van de schoolbordwaarde en de retourwaarde best interessant is.

115
00:07:06,780 --> 00:07:07,350
‫Laten we eens kijken.

116
00:07:07,350 --> 00:07:12,570
‫Laten we het volgen met een F12 en kijken welke verschillende statussen we kunnen teruggeven van onze uitvoeringstest.

117
00:07:12,600 --> 00:07:14,370
‫Nu is de eerste geslaagd.

118
00:07:14,380 --> 00:07:14,700
‫Super goed.

119
00:07:14,700 --> 00:07:19,470
‫Dat geeft in feite aan de gedragsboom aan dat deze notitie is uitgevoerd en dat we naar de

120
00:07:19,800 --> 00:07:20,790
‫volgende kunnen gaan.

121
00:07:20,820 --> 00:07:21,870
‫Weer mislukt.

122
00:07:21,870 --> 00:07:27,420
‫Dit is klaar, dus we kunnen doorgaan naar de volgende, maar deze keer zegt het dat het is mislukt.

123
00:07:27,420 --> 00:07:34,230
‫Dus dat geeft de verschillende indicaties aan bijvoorbeeld onze sequentieknooppunten of onze geselecteerde knooppunten over wat die

124
00:07:34,230 --> 00:07:36,510
‫knooppunten eigenlijk zouden moeten doen.

125
00:07:37,320 --> 00:07:44,610
‫Dan zijn we geaborteerd, wat in feite hetzelfde is als falen en we hebben aan de gang.

126
00:07:44,970 --> 00:07:51,330
‫Als je in uitvoering terugkeert van een uitvoeringstaak, betekent dit in feite dat je moet blijven vinken totdat ik

127
00:07:51,360 --> 00:07:57,090
‫je anders vertel, totdat ik zeg dat ik klaar ben, nu gaan we dit niet gebruiken.

128
00:07:57,090 --> 00:08:02,670
‫Maar het is goed om in gedachten te houden dat als je een taak moet maken die lang duurt

129
00:08:02,670 --> 00:08:06,030
‫en over meerdere vinkjes zal lopen, we in uitvoering moeten terugkeren.

130
00:08:06,030 --> 00:08:07,980
‫Maar zoals ik al zei, we willen slagen.

131
00:08:08,520 --> 00:08:10,200
‫Dus laten we naar binnen gaan en dat doen.

132
00:08:10,200 --> 00:08:12,450
‫Retourneer leeg knooppuntresultaat.

133
00:08:13,470 --> 00:08:14,280
‫Dikke darm.

134
00:08:14,580 --> 00:08:20,280
‫En het gaat lukken, want we zijn erin geslaagd om die waarde in principe hoe dan ook te zuiveren.

135
00:08:20,880 --> 00:08:25,440
‫Dus we kunnen doorgaan en dit allemaal opslaan, naar de editor gaan en op compileren klikken.

136
00:08:25,440 --> 00:08:31,470
‫En als dat voltooid is, laten we doorgaan en onze AI en de gedragsboom openen.

137
00:08:31,710 --> 00:08:33,300
‫Dus is die ene Beattie-vijand?

138
00:08:33,450 --> 00:08:35,460
‫Ik koppel het aan het hoofdvenster en laten we eens kijken.

139
00:08:35,460 --> 00:08:36,600
‫We hebben een duidelijk schoolbord.

140
00:08:36,600 --> 00:08:42,060
‫Value zou ons nu in staat moeten stellen om naar de laatst bekende locatie te gaan, de

141
00:08:42,060 --> 00:08:48,840
‫schoolbordwaarde te wissen, vijf te wachten, en dan zouden we moeten zien dat het onderzoek naar deze laatst bekende speellocatie moet

142
00:08:48,840 --> 00:08:52,170
‫worden uitgeschakeld, dus we moeten teruggaan naar onze startlocatie .

143
00:08:52,170 --> 00:08:56,760
‫Dus laten we eens kijken of dit gedrag nu werkt nu de taak volledig is geïmplementeerd.

144
00:08:56,760 --> 00:09:00,120
‫Dus hij komt naar me toe, hij onderzoekt me.

145
00:09:00,570 --> 00:09:01,620
‫Ik ga me verstoppen.

146
00:09:01,770 --> 00:09:02,340
‫Dus laten we naar binnen gaan.

147
00:09:02,340 --> 00:09:04,170
‫Hides komt op onderzoek.

148
00:09:04,170 --> 00:09:05,310
‫Laten we gaan en ons weer verstoppen.

149
00:09:05,850 --> 00:09:06,990
‫Dus ga en verstop je.

150
00:09:07,770 --> 00:09:09,810
‫Eens kijken of we hem daar kunnen spotten.

151
00:09:10,170 --> 00:09:15,870
‫Hij zou op dit moment moeten wachten en dan gaat hij terug naar zijn startlocatie,

152
00:09:16,050 --> 00:09:18,270
‫waardoor hij mij helaas kruist.

153
00:09:18,510 --> 00:09:25,350
‫Dus laten we eens kijken of dit echt werkt zoals we verwachten door onze vijand door het raam naar buiten te brengen

154
00:09:25,380 --> 00:09:29,790
‫en naar rechts aan te meren en ons hoofdvenster aan de linkerkant te plaatsen.

155
00:09:29,790 --> 00:09:34,830
‫Het is een beetje krap, maar we kunnen het doen en dan gaan we proberen om nog een keer aan deze

156
00:09:34,830 --> 00:09:37,770
‫man te ontsnappen en kijken wat er met zijn gedrag gebeurt.

157
00:09:37,770 --> 00:09:41,670
‫Je kunt zien dat hij naar de laatst bekende speellocatie gaat.

158
00:09:42,540 --> 00:09:45,810
‫En nu wacht hij, nadat hij de vallei heeft vrijgemaakt.

159
00:09:46,050 --> 00:09:47,910
‫En dan zie je dat hij ook gaat bewegen.

160
00:09:47,910 --> 00:09:53,010
‫En je kunt zien dat deze rode balken op de decorateurs ons vertellen dat geen van deze twee voorwaarden

161
00:09:53,310 --> 00:09:53,970
‫waar is.

162
00:09:53,970 --> 00:09:57,660
‫Dus hij kan geen van beide doen om uiteindelijk naar de startlocatie te gaan.

163
00:09:57,930 --> 00:10:00,930
‫Dus nu flikkert het omdat het eigenlijk niets kan doen.

164
00:10:01,440 --> 00:10:09,780
‫Dus dat komt in feite erop neer dat we in deze lezing hebben gezien hoe we de beat-taken kunnen krijgen om code uit te voeren, de verschillende

165
00:10:09,780 --> 00:10:14,730
‫statussen begrepen die je kunt terugkeren van taak uitvoeren, hoe je het schoolbord van de taak

166
00:10:15,000 --> 00:10:19,710
‫kunt krijgen en ook hoe je de momenteel geselecteerde toets op kunt krijgen een schoolbordtaak.

167
00:10:19,830 --> 00:10:26,280
‫In de volgende lezing gaan we kijken hoe we de wereld buiten de schoolbordgedragsboom kunnen pakken,

168
00:10:26,280 --> 00:10:30,390
‫hoe we de pion kunnen pakken vanuit een gedragsboomtaak.

169
00:10:30,420 --> 00:10:31,020
‫Ik zal dat zien.

