﻿1
00:00:04,550 --> 00:00:05,740
‫Hallo en welkom.

2
00:00:05,750 --> 00:00:11,270
‫In deze lezing gaan we beginnen met het toevoegen van nog meer functionaliteit aan onze gedragsboom

3
00:00:11,270 --> 00:00:17,150
‫door een aangepaste taak toe te voegen, deze duidelijke schoolbordwaarde, we gaan dat helemaal op maat maken

4
00:00:17,150 --> 00:00:17,960
‫in C++.

5
00:00:18,230 --> 00:00:19,970
‫Laten we erin duiken en kijken hoe we het moeten doen.

6
00:00:21,280 --> 00:00:21,440
‫Oké.

7
00:00:21,460 --> 00:00:28,740
‫Dus ik zou het gedrag van deze gedragsboom willen uitbreiden, zodat we het kunnen onderzoeken.

8
00:00:28,750 --> 00:00:32,830
‫En als we klaar zijn met onderzoeken, gaan we terug naar huis.

9
00:00:33,130 --> 00:00:40,000
‫Dus ik ga hier later een kleine beweging aan de taak toevoegen, die ons gewoon terugbrengt naar de startlocatie.

10
00:00:40,720 --> 00:00:47,080
‫En wat we moeten doen om daar te komen, is een idee hebben of we de laatst bekende

11
00:00:47,080 --> 00:00:48,910
‫speellocatie al hebben bezocht.

12
00:00:49,360 --> 00:00:54,430
‫En de manier waarop ik dat ga doen, is in wezen door de laatst bekende speellocatie van de troon te stoten zodra

13
00:00:54,430 --> 00:00:55,360
‫we die hebben onderzocht.

14
00:00:55,900 --> 00:01:00,730
‫Als we momenteel geen manier hebben om dat te doen, maar laten we eerst de decorateur maken.

15
00:01:00,910 --> 00:01:09,130
‫Dus een decorateur toegevoegd aan het onderzoeken van schoolbord dat zal gaan en het hernoemen naar

16
00:01:09,130 --> 00:01:10,930
‫heeft zo onderzocht.

17
00:01:11,440 --> 00:01:16,360
‫En dit gaat controleren of de laatst bekende locatie is ingesteld.

18
00:01:16,870 --> 00:01:22,810
‫En dat betekent dat we een soort knooppunt nodig hebben waarmee we een schoolbordsleutel kunnen uitschakelen.

19
00:01:23,800 --> 00:01:25,390
‫Nu, dat bestaat eigenlijk nog niet.

20
00:01:25,390 --> 00:01:26,560
‫Ik dacht van wel, maar dat is niet zo.

21
00:01:26,590 --> 00:01:31,150
‫Dit is dus een geweldige kans voor mij om je te laten zien hoe we een taak op maat kunnen maken.

22
00:01:31,450 --> 00:01:35,390
‫Nu, je zou het heel gemakkelijk kunnen doen met behulp van blauwdrukken of waar?

23
00:01:35,480 --> 00:01:39,760
‫Ik ga je de enigszins Hardaway laten zien, maar degene die je veel kracht geeft, die het

24
00:01:39,760 --> 00:01:40,780
‫doet via C++.

25
00:01:41,530 --> 00:01:48,670
‫Dus we gaan naar onze hoofdinhoudbrowser, gaan naar nieuwe toevoegen en gaan naar de nieuwe C++-klasse.

26
00:01:48,670 --> 00:01:54,220
‫En we willen het selectievakje voor alle klassen laten zien en dan zoeken we naar B. T. Taak.

27
00:01:54,640 --> 00:01:56,710
‫En er zijn veel opties hier.

28
00:01:57,050 --> 00:02:03,700
‫Je kunt zien dat veel van hen eigenlijk ingebouwde taken zijn, zoals lawaai maken of er is een verhuizing naar hier

29
00:02:03,700 --> 00:02:04,630
‫of wacht.

30
00:02:05,200 --> 00:02:08,910
‫Nu zou je een kijkje kunnen nemen in de C++ om te zien hoe deze zijn geïmplementeerd.

31
00:02:08,920 --> 00:02:09,850
‫Dat is altijd handig.

32
00:02:10,270 --> 00:02:13,660
‫Maar waar we in geïnteresseerd zijn, is waar we van moeten erven?

33
00:02:13,660 --> 00:02:16,930
‫Wat moeten we gebruiken als basis voor ons eigen knooppunt?

34
00:02:17,410 --> 00:02:18,970
‫Nu zijn er een paar opties hier.

35
00:02:18,980 --> 00:02:25,360
‫U kunt ervoor kiezen om een taakknooppunt als basis te hebben, of u kunt de schoolbordbasis gebruiken.

36
00:02:25,390 --> 00:02:26,830
‫Wat is nu het verschil tussen de twee?

37
00:02:27,520 --> 00:02:28,390
‫Laten we snel kijken.

38
00:02:28,780 --> 00:02:31,890
‫Dus verhuizen naar daadwerkelijk gebruikt de schoolbordbasis.

39
00:02:31,900 --> 00:02:39,070
‫En wat dat betekent, is dat het een vervolgkeuzelijst voor schoolbordtoetsen heeft waarmee we een schoolbordsleutel kunnen kiezen om mee

40
00:02:39,070 --> 00:02:40,060
‫te werken.

41
00:02:40,300 --> 00:02:45,880
‫Dat betekent dat we de schoolbordtoetsen waarmee we werken niet hard hoeven te coderen in onze taak, wat geweldig is omdat

42
00:02:45,880 --> 00:02:49,750
‫het ons in staat stelt om die taken in verschillende situaties opnieuw te gebruiken.

43
00:02:50,110 --> 00:02:54,740
‫Dus als je een schoolbordsleutel nodig hebt, dan is de schoolbordbasis een goede keuze.

44
00:02:54,760 --> 00:02:56,410
‫Anders gebruik je de andere.

45
00:02:56,890 --> 00:03:02,300
‫Dus laten we gaan en nieuwe toevoegen, opnieuw een nieuwe C++-klasse toevoegen, alle klassen weergeven en we zijn weer op zoek

46
00:03:02,440 --> 00:03:03,520
‫naar de beat-taak.

47
00:03:03,520 --> 00:03:06,670
‫En we selecteren nog steeds de volgende Blackboard Base-hit.

48
00:03:07,000 --> 00:03:14,410
‫Nu ga ik dit hernoemen naar Beat Task, onderstreping duidelijke schoolbordwaarde.

49
00:03:15,370 --> 00:03:18,160
‫Ik ga door en maak die klas hier aan.

50
00:03:18,850 --> 00:03:20,410
‫Nu zal dit in eerste instantie mislukken.

51
00:03:20,410 --> 00:03:20,920
‫Dus laten we klikken.

52
00:03:20,920 --> 00:03:23,230
‫Ja en kijk wat de foutmelding hier is.

53
00:03:23,770 --> 00:03:30,040
‫Het zegt iets over L en K, wat staat voor link onopgelost extern symbool, bla, bla, bla.

54
00:03:30,070 --> 00:03:35,500
‫Meestal, als je dit soort fouten van de linker krijgt, zegt dit dat je iets in je

55
00:03:35,500 --> 00:03:43,000
‫hoofd van bestanden hebt dat niet in je C ++ stond of in dit geval betekent het dat er geen module is meegeleverd

56
00:03:43,000 --> 00:03:44,560
‫die we vertrouwen op.

57
00:03:45,010 --> 00:03:51,970
‫En op basis van de soorten symbolen waarnaar het zoekt, kan ik zien dat het hier de interface van de AI-gameplay-taakeigenaar

58
00:03:51,970 --> 00:03:52,510
‫is.

59
00:03:53,050 --> 00:03:58,870
‫Het lijkt te zoeken naar iets dat te maken heeft met speltaken en dat is in feite een module.

60
00:03:58,880 --> 00:04:05,740
‫Dus als we naar Visual Studio-code gaan en gewoon de bestandsbrowser openen, gaat het gewoon omhoog

61
00:04:05,740 --> 00:04:07,030
‫naar mijn project.

62
00:04:07,360 --> 00:04:12,210
‫Dan zou er onder source simple shooter een eenvoudige shooter-dot-build moeten zijn, dot C.

63
00:04:12,280 --> 00:04:14,350
‫Dus wat uw projectnaam ook is, het is Dot Builders.

64
00:04:14,350 --> 00:04:14,650
‫Ja.

65
00:04:15,130 --> 00:04:21,160
‫En hierbinnen, als ik ons wat meer ruimte geef, kun je zien dat we deze openbare afhankelijkheden

66
00:04:21,160 --> 00:04:22,030
‫hebben, modulenamen.

67
00:04:22,180 --> 00:04:29,470
‫En de modulenaam hier die we aan deze lijst willen toevoegen, wordt gameplay.

68
00:04:30,920 --> 00:04:37,370
‫Taken met een S en als we doorgaan en dat toevoegen en teruggaan en nu compileren, hopelijk zou alles om

69
00:04:37,370 --> 00:04:40,040
‫welke reden dan ook succesvol moeten compileren.

70
00:04:40,040 --> 00:04:44,480
‫Dit wordt niet automatisch toegevoegd als je de beat-taak opheft.

71
00:04:44,720 --> 00:04:48,470
‫Als dat klaar is, gaan we kijken wat hier is gemaakt.

72
00:04:49,100 --> 00:04:56,480
‫We zouden een nieuwe klasse moeten hebben, dat is onze bètataak, onderstrepingsteken, schoolbordwaarde.

73
00:04:56,840 --> 00:04:58,910
‫En het is op dit moment vrij leeg.

74
00:04:59,420 --> 00:05:05,090
‫Wat ik nu wil doen, is dat als we dit op dit moment aan onze gedragsboom zouden toevoegen, het een lelijke

75
00:05:05,090 --> 00:05:06,140
‫naam zou hebben.

76
00:05:06,440 --> 00:05:09,920
‫Dus we willen een mooie, voor mensen leesbare naam voor deze taak.

77
00:05:10,280 --> 00:05:14,660
‫En de manier waarop we dit gaan doen, is door een constructor toe te voegen en een eigenschap in te stellen.

78
00:05:14,660 --> 00:05:17,330
‫Dus laten we hier een openbare constructor maken.

79
00:05:17,990 --> 00:05:21,350
‫De constructor heeft altijd dezelfde naam als de klasse, dus die kunnen we kopiëren.

80
00:05:21,600 --> 00:05:26,660
‫Het hoeft aan het einde geen puntkomma van het argument te gebruiken en laten we dan de

81
00:05:26,660 --> 00:05:27,950
‫implementatie in C++ maken.

82
00:05:28,640 --> 00:05:33,920
‫En de implementatie hoeft alleen maar een variabele in te stellen met de naam knooppuntnaam.

83
00:05:34,280 --> 00:05:40,760
‫Dus als je de knooppuntnaam instelt en vervolgens een string gebruikt, dan wordt de string die we instellen de knooppuntnaam.

84
00:05:40,760 --> 00:05:42,920
‫Dus het wordt een duidelijk schoolbord.

85
00:05:44,120 --> 00:05:48,710
‫Waarde alleen met de spaties in het juiste hoofdlettergebruik zou leuk en gemakkelijk moeten zijn.

86
00:05:48,740 --> 00:05:54,020
‫Nu, een ding dat ik vergat te doen op het moment van opnemen, is dit te omringen met de tekstmacro.

87
00:05:54,350 --> 00:05:59,540
‫Nu moet je doorgaan en dat in je code doen, maar je zult zien dat het in mijn code zal blijven

88
00:05:59,840 --> 00:06:01,220
‫bestaan en gewoon zo is.

89
00:06:01,850 --> 00:06:04,940
‫En dat zouden we nu moeten kunnen gaan compileren.

90
00:06:06,680 --> 00:06:08,900
‫Geweldig dat het succesvol is gecompileerd.

91
00:06:09,470 --> 00:06:11,960
‫Dus ik daag je uit om dit nieuwe knooppunt toe te voegen.

92
00:06:12,290 --> 00:06:17,030
‫Dus voeg het toe aan het einde van het onderzoeksgedrag en controleer of het is voltooid.

93
00:06:17,030 --> 00:06:22,370
‫In principe zou het automatisch moeten worden voltooid zonder iets te doen, maar controleer of de naam correct

94
00:06:22,370 --> 00:06:22,970
‫is aangevinkt.

95
00:06:22,970 --> 00:06:26,210
‫Ze kunnen het toevoegen en we zullen kijken naar het toevoegen van het gedrag in de volgende lezing.

96
00:06:26,220 --> 00:06:27,320
‫Dus pauzeer de video en probeer het.

97
00:06:28,640 --> 00:06:29,080
‫Oké.

98
00:06:29,090 --> 00:06:29,630
‫Welkom terug.

99
00:06:29,690 --> 00:06:35,600
‫Dus laten we naar Enemy II gaan en toevoegen aan het einde van het onderzoeksgedrag.

100
00:06:35,600 --> 00:06:39,380
‫We gaan onze duidelijke schoolbordwaarde toevoegen.

101
00:06:39,380 --> 00:06:41,210
‫Je kunt zien dat het daar de mooie naam heeft.

102
00:06:41,630 --> 00:06:45,590
‫En je kunt ook zien dat als je naar het detailvenster gaat, je een schoolbordsleutel kunt selecteren.

103
00:06:45,590 --> 00:06:47,960
‫We gaan de afspeellocatie voor de achternaam selecteren.

104
00:06:47,960 --> 00:06:53,180
‫Ook al doet dat nog niets, je kunt zien dat we die functionaliteit hebben omdat we het

105
00:06:53,180 --> 00:06:58,190
‫hebben geërfd van Blackboard Base en laten we eens kijken of het automatisch wordt voltooid.

106
00:06:58,190 --> 00:07:00,770
‫Het zou moeten doen en dan moet het verder gaan.

107
00:07:00,770 --> 00:07:06,560
‫Laten we het daarna overgaan op een taak met gewichten, zodat we kunnen zien dat dit gewoon doorgaat en

108
00:07:06,560 --> 00:07:07,790
‫automatisch wordt voltooid.

109
00:07:08,240 --> 00:07:17,420
‫Dus ik ga spelen, ik ga me zo veel mogelijk in een hoekje verstoppen, en dan ga ik kijken naar

110
00:07:17,420 --> 00:07:23,030
‫het onderzoek dat het heeft doorstaan en hij heeft me echt gezien.

111
00:07:23,030 --> 00:07:26,930
‫Dus laten we ons weer gaan verstoppen en ons om de hoek verstoppen als ik kan.

112
00:07:28,520 --> 00:07:31,510
‫Ik zal gaan en dan ga ik naar de zij gaan.

113
00:07:31,520 --> 00:07:35,790
‫Het is dwars door de duidelijke schoolbordwaarde gegaan, wat moet betekenen dat het is gelukt, want we

114
00:07:35,790 --> 00:07:40,730
‫weten dat als het een reeks was en het mislukte, het moet zijn gestopt en niet op het gewicht is gegaan.

115
00:07:41,180 --> 00:07:42,890
‫Dat werkt dus correct.

116
00:07:42,890 --> 00:07:48,630
‫De duidelijke schoolbordwaarde is gewoon meteen succes retourneren en doorgaan met wachten op de volgende stap.

117
00:07:48,650 --> 00:07:51,710
‫We gaan kijken hoe we de functionaliteit daadwerkelijk kunnen toevoegen.

118
00:07:51,950 --> 00:07:52,550
‫Ik zal het daar zien.

