﻿1
00:00:04,110 --> 00:00:07,740
‫In deze lezing gaan we een C++-klasse maken.

2
00:00:07,770 --> 00:00:11,310
‫Nu hebben we een klasse nodig die we voor onze pionnen kunnen gebruiken.

3
00:00:11,340 --> 00:00:15,720
‫Nu zeg ik pionnen, meervoud, omdat er twee verschillende pionnen in ons spel zullen zijn.

4
00:00:15,720 --> 00:00:20,280
‫Er zal een tank zijn die we gebruiken om door het level te rollen, en

5
00:00:20,280 --> 00:00:24,870
‫er zal een torentje zijn dat onze vijand zal zijn, zodat we een basispionklasse kunnen creëren.

6
00:00:24,870 --> 00:00:30,050
‫En dit zal de basisfunctionaliteit hebben die zowel de tank als de toren zullen delen.

7
00:00:30,060 --> 00:00:34,890
‫En op deze manier kunnen we onze twee kinderklassen, de tank en het torentje, creëren.

8
00:00:34,890 --> 00:00:40,890
‫Deze gaan dus eigenschappen erven van de basispionklasse en dit zijn dingen die beide pionnen zullen

9
00:00:40,890 --> 00:00:47,010
‫delen, zoals het hebben van het gaas, het hebben van een capsulecomponent en de mogelijkheid om projectielen

10
00:00:47,010 --> 00:00:47,820
‫te lanceren.

11
00:00:47,820 --> 00:00:51,840
‫Nu gaan we in op al deze functies in toekomstige video's voor deze video.

12
00:00:51,840 --> 00:00:56,280
‫We gaan gewoon de C++-klasse maken en er enkele basisvariabelen aan toevoegen.

13
00:00:56,280 --> 00:01:00,990
‫Dit is dus onze motivatie voor het maken van onze eerste C++-klasse.

14
00:01:01,020 --> 00:01:06,450
‫Nu zijn we klaar om enkele C++-klassen voor dit project te maken.

15
00:01:06,630 --> 00:01:13,410
‫Nu zie je hier in de inhoudbrowser dat er geen mappen zijn voor C++-klassen.

16
00:01:13,410 --> 00:01:19,770
‫Dat komt omdat we er nog geen hebben gemaakt, maar we staan op het punt om nu te schrijven, zodat we naar tools

17
00:01:19,770 --> 00:01:22,140
‫kunnen gaan en een nieuwe C++-klasse kunnen selecteren.

18
00:01:22,140 --> 00:01:27,690
‫En hier gaan we de bovenliggende klasse kiezen voor de klasse die we gaan maken.

19
00:01:27,690 --> 00:01:31,740
‫En standaard hebben we hier verschillende opties om uit te kiezen.

20
00:01:31,740 --> 00:01:35,330
‫Dit had je in eerdere colleges moeten zien.

21
00:01:35,330 --> 00:01:38,280
‫Dus nu moeten we hier enkele beslissingen nemen.

22
00:01:38,370 --> 00:01:41,550
‫Ten eerste, welke ouderklasse gaan we kiezen?

23
00:01:41,550 --> 00:01:42,210
‫Wij hebben.

24
00:01:42,210 --> 00:01:43,860
‫De eerste is geen.

25
00:01:43,860 --> 00:01:50,910
‫Dat zou ons in principe in staat stellen om een gewone oude C++-klasse te maken, maar we hebben wat extra functionaliteit nodig.

26
00:01:50,910 --> 00:01:55,440
‫Ten eerste willen we een instantie van dit object in de wereld kunnen plaatsen.

27
00:01:55,440 --> 00:01:58,230
‫Dus dat kunnen we niet doen met een gewone oude C++-klasse.

28
00:01:58,230 --> 00:02:03,810
‫We zouden dat kunnen doen met een personage of een pion of een acteur, maar welke van deze is het meest geschikt

29
00:02:03,810 --> 00:02:05,250
‫voor wat we willen doen?

30
00:02:05,400 --> 00:02:10,020
‫We moeten een stap terug doen en nadenken over wat we hier precies proberen te creëren.

31
00:02:10,050 --> 00:02:17,460
‫We proberen een tank te maken die we kunnen besturen en over het niveau kunnen bewegen en projectielen kunnen schieten, zodat we

32
00:02:17,460 --> 00:02:21,570
‫schade kunnen aanrichten en al dat goede spul in onze activamap.

33
00:02:21,570 --> 00:02:28,770
‫Om ons eraan te herinneren, we hebben deze map met mazen hier en we hebben de tankbasis en we hebben de tankkoepel.

34
00:02:28,800 --> 00:02:32,670
‫Dit zijn twee verschillende meshes die in onze klas zullen voorkomen.

35
00:02:32,670 --> 00:02:35,640
‫En dus hebben we de mogelijkheid nodig om meshes te hebben.

36
00:02:35,640 --> 00:02:39,270
‫En dus heeft een gewone C++-klasse die mogelijkheid niet.

37
00:02:39,540 --> 00:02:41,670
‫Laten we hier dus even over nadenken.

38
00:02:41,670 --> 00:02:44,250
‫Welke ouderklasse moeten we gebruiken?

39
00:02:44,250 --> 00:02:48,780
‫Welnu, de eerste klas die waarschijnlijk in je opkomt, is de acteursklasse.

40
00:02:48,780 --> 00:02:52,320
‫Nu heeft de acteursklasse het vermogen om in de wereld te worden geplaatst.

41
00:02:52,320 --> 00:02:53,850
‫Dus dat is een goed begin.

42
00:02:53,940 --> 00:02:57,750
‫Het heeft ook de mogelijkheid om een visuele weergave te hebben.

43
00:02:57,750 --> 00:03:04,080
‫Of dat nu een mesh is of iets anders, het kan daadwerkelijk worden gezien zodra je het in de wereld plaatst, op voorwaarde dat je

44
00:03:04,080 --> 00:03:07,650
‫het een mesh geeft of wat het ook is dat je wilt zien.

45
00:03:07,650 --> 00:03:13,260
‫Nu afgeleid van acteur, hebben we de -- klasse en de -- erft al die kwaliteiten

46
00:03:13,260 --> 00:03:19,830
‫van de acteursklasse, behalve dat het extra kwaliteiten heeft zoals het vermogen om door een controller te worden bezeten.

47
00:03:19,830 --> 00:03:25,980
‫Dit hele bezitsgedoe is iets waar later meer in detail op wordt ingegaan, maar begrijp voor nu gewoon dat

48
00:03:25,980 --> 00:03:30,060
‫dit betekent dat een -- kan worden bestuurd door een speler.

49
00:03:30,060 --> 00:03:36,750
‫Dus als u op een muisknop of een toetsenbordtoets drukt, kan dit worden ingesteld en geconfigureerd zodat we de

50
00:03:36,750 --> 00:03:38,580
‫-- rond kunnen verplaatsen.

51
00:03:38,580 --> 00:03:43,110
‫Dus dit klinkt als iets dat we zeker zouden willen voor onze tank.

52
00:03:43,110 --> 00:03:49,410
‫Dus door bewegingsinvoer af te handelen, klinkt de -- als een redelijk goede keuze die nu is afgeleid van de

53
00:03:49,410 --> 00:03:55,560
‫-- klasse en dus alle dingen erft die de -- heeft, plus alle dingen die de -- geërfd heeft

54
00:03:55,560 --> 00:03:56,880
‫van zijn bovenliggende klasse.

55
00:03:56,880 --> 00:04:02,100
‫We hebben de karakterklasse die een aantal karakterspecifieke dingen heeft.

56
00:04:02,460 --> 00:04:05,550
‫Het heeft bijvoorbeeld iets dat een karakterbewegingscomponent wordt genoemd.

57
00:04:05,550 --> 00:04:07,830
‫Nu, een -- heeft dit niet.

58
00:04:07,860 --> 00:04:13,980
‫Een personagebewegingscomponent geeft het personage extra mogelijkheden, zoals verschillende bewegingsmodi zoals vliegen en

59
00:04:13,980 --> 00:04:19,440
‫zwemmen en hurken en andere dingen die specifiek zijn voor personages.

60
00:04:19,440 --> 00:04:25,560
‫De karakterklasse is goed voor tweevoetige karakters en het zal niet erg goed werken voor niet-tweevoetige karakters, dingen

61
00:04:25,560 --> 00:04:28,410
‫die geen wezens met twee benen zijn.

62
00:04:28,410 --> 00:04:34,050
‫En hoewel het best geweldig zou zijn om een tank rond het niveau te laten vliegen en bommen te

63
00:04:34,050 --> 00:04:38,940
‫laten vallen op alles wat hij ziet, gaan we in deze sectie niet zoiets ingewikkelds doen.

64
00:04:38,940 --> 00:04:41,040
‫We gaan gewoon een tank maken die rond kan rollen.

65
00:04:41,040 --> 00:04:47,220
‫Dus we hebben echt geen karakterbewegingscomponent of een van die speciale karakterspecifieke dingen nodig.

66
00:04:47,220 --> 00:04:52,380
‫Dus hiervoor denk ik dat een -- perfect is voor wat we proberen te bereiken.

67
00:04:52,380 --> 00:04:59,490
‫Dus ik ga je uitdagen om een nieuwe C++-klasse te maken, een klasse te maken op basis van --, en deze nieuwe klasse een naam

68
00:04:59,490 --> 00:05:01,230
‫te geven op basis van --.

69
00:05:01,230 --> 00:05:03,600
‫Nu kunt u alle instellingen laten zoals ze zijn.

70
00:05:03,670 --> 00:05:05,200
‫In de wizard voor het maken van klassen.

71
00:05:05,200 --> 00:05:10,570
‫U hoeft het bestandspad of iets dergelijks niet te wijzigen, dus pauzeer de video en maak

72
00:05:10,570 --> 00:05:13,030
‫uw eerste C++-klasse voor dit project.

73
00:05:16,320 --> 00:05:18,090
‫Dus terug hier in het level.

74
00:05:18,120 --> 00:05:21,690
‫Dus laten we naar tools gaan en een nieuwe C++-klasse maken.

75
00:05:21,690 --> 00:05:24,260
‫Ik heb de C++-klasse nog niet gemaakt.

76
00:05:24,270 --> 00:05:27,180
‫Ik heb dit net afgesloten om terug te gaan naar die dia.

77
00:05:27,180 --> 00:05:33,480
‫Maar nu ik terug ben, ben ik klaar om mijn eerste C++-klasse voor dit project te maken en ik ga kiezen --

78
00:05:33,480 --> 00:05:36,720
‫en je zult zien dat elke keer dat je eroverheen beweegt.

79
00:05:36,720 --> 00:05:38,370
‫Dit heb je vast wel eens eerder gezien.

80
00:05:38,400 --> 00:05:44,790
‫We krijgen een tooltip die verschijnt en die zegt: -- is de basisklasse van alle acteurs die door spelers bezeten

81
00:05:44,790 --> 00:05:45,660
‫kunnen worden.

82
00:05:45,660 --> 00:05:52,680
‫Of ik weet dat dat best spannend klinkt, maar we gaan dit zo configureren dat het verplaatsbaar is door invoer van

83
00:05:52,680 --> 00:05:53,370
‫een speler.

84
00:05:53,370 --> 00:05:55,380
‫Dit is dus ideaal.

85
00:05:55,470 --> 00:06:01,020
‫Het gaat verder met te zeggen dat ze de fysieke representaties zijn van spelers en wezens in een level.

86
00:06:01,020 --> 00:06:07,080
‫Met andere woorden, als we deze tank eenmaal hebben gemaakt, zal hij ons vertegenwoordigen als spelers in de wereld.

87
00:06:07,080 --> 00:06:07,950
‫Best wel gaaf.

88
00:06:08,040 --> 00:06:15,960
‫Dus selecteer -- en klik op volgende en het toont ons het pad waar het deze klasse in ons project gaat plaatsen en

89
00:06:15,960 --> 00:06:20,070
‫je zult zien dat het in source slash tune tanks staat.

90
00:06:20,070 --> 00:06:26,280
‫Nu willen we onze nieuwe naam -- want mijn -- is een afschuwelijke naam en het is erg vaag.

91
00:06:26,280 --> 00:06:29,700
‫We hebben nu iets specifiekers nodig.

92
00:06:29,700 --> 00:06:35,400
‫We zijn van plan dit als een basisklasse te gebruiken, wat betekent dat we klassen uit deze klasse

93
00:06:35,400 --> 00:06:38,340
‫gaan afleiden, zodat we deze basis kunnen noemen --.

94
00:06:38,340 --> 00:06:43,080
‫Ik weet dat dat niet veel beter is dan mijn --, maar goed, het zegt ons dat dit een basis is --.

95
00:06:43,080 --> 00:06:46,770
‫Hier gaan we in de toekomst kinderklassen van afleiden.

96
00:06:46,770 --> 00:06:47,730
‫Daar komen we op.

97
00:06:47,730 --> 00:06:52,320
‫Maar voor nu gaan we deze basis noemen -- en we gaan op Create Class klikken.

98
00:06:53,930 --> 00:06:54,590
‫Oke.

99
00:06:54,590 --> 00:06:58,340
‫Dus Visual Studio-code is voor ons opengegaan met onze nieuwe klasse.

100
00:06:58,340 --> 00:07:01,700
‫We hebben gebaseerd op H en gebaseerd op CP.

101
00:07:01,730 --> 00:07:08,180
‫Nu kunnen we deze zijbalk sluiten door daar op het Verkenner-pictogram te klikken en kunnen we kijken wat de code van

102
00:07:08,180 --> 00:07:09,890
‫V voor ons heeft gegenereerd.

103
00:07:09,890 --> 00:07:16,880
‫Dus standaard krijgen we de klassenconstructor en drie functies voor het starten, spelen, aanvinken en instellen

104
00:07:16,880 --> 00:07:18,380
‫van de spelerinvoercomponent.

105
00:07:18,410 --> 00:07:21,980
‫Nu moet u bekend zijn met Begin, Spelen en de opmerkingen hier aanvinken.

106
00:07:21,980 --> 00:07:23,300
‫Leg uit wat ze doen.

107
00:07:23,330 --> 00:07:28,790
‫Het instellen van de spelerinvoercomponent is iets dat de pion krijgt en deze functie stelt ons in staat om invoer

108
00:07:28,790 --> 00:07:34,250
‫te verwerken zoals van een toetsenbordtoets of een muisklik en we zullen meer leren over hoe dit werkt in

109
00:07:34,250 --> 00:07:35,690
‫toekomstige video's in de basisband.

110
00:07:35,840 --> 00:07:41,930
‫CP Deze functies zijn voor ons gedefinieerd, maar ze zijn vrij kaal en zullen dat ook niet veranderen in

111
00:07:41,930 --> 00:07:42,740
‫toekomstige video's.

112
00:07:42,740 --> 00:07:49,370
‫Dus in deze video hebben we onze eerste C++-klasse gemaakt en de volgende video zal componenten bespreken en waarom we er enkele

113
00:07:49,370 --> 00:07:51,770
‫aan onze nieuwe klasse zouden willen toevoegen.

114
00:07:51,800 --> 00:07:52,790
‫Ik zie je snel.

