﻿1
00:00:04,180 --> 00:00:05,380
‫Hallo en welkom.

2
00:00:05,470 --> 00:00:11,050
‫In deze lezing gaan we kijken naar deze kleine pinnen en de verschillende kleuren waarin

3
00:00:11,050 --> 00:00:17,140
‫ze binnenkomen en begrijpen dat dit verschillende gegevenstypen zijn die beperken wat we kunnen aansluiten op wat.

4
00:00:17,950 --> 00:00:23,170
‫Dus laten we er meteen in duiken en eens kijken naar wat ik bedoel met een gegevenstype.

5
00:00:23,710 --> 00:00:31,660
‫Dus een redelijk werkbare definitie van gegevenstype is dat het bepaalde stukjes gegevens binair in het

6
00:00:31,690 --> 00:00:34,720
‫geheugen van uw computer voorstelt.

7
00:00:35,440 --> 00:00:42,670
‫En het kan ook gewoon een manier zijn om te beperken wat we met dit stukje gegevens kunnen doen.

8
00:00:42,700 --> 00:00:46,240
‫Het gaat dus niet altijd om verschillende representaties.

9
00:00:46,600 --> 00:00:55,030
‫En je kunt het zien als de vorm van de gegevens in die zin dat een vierkante pen niet in een rond gat

10
00:00:55,030 --> 00:00:55,510
‫past.

11
00:00:55,810 --> 00:01:00,460
‫We kunnen dus niet het verkeerde type gegevens in het verkeerde type pin krijgen.

12
00:01:01,910 --> 00:01:04,320
‫Laten we dus eens kijken naar enkele voorbeelden van gegevenstypen.

13
00:01:04,340 --> 00:01:07,400
‫Er is het gehele getal, wat een klassiek voorbeeld is.

14
00:01:07,610 --> 00:01:16,580
‫Een geheel getal is een geheel getal, dus het heeft waarden als 223 -14, maar niet zoiets als 1. 2.

15
00:01:16,790 --> 00:01:22,760
‫Dat zou een float zijn, wat een afkorting is voor floating point number.

16
00:01:23,180 --> 00:01:28,850
‫En dit zijn in feite getallen waarbij je een decimale punt hebt en deze getallen kunnen heel groot of

17
00:01:28,850 --> 00:01:33,620
‫heel klein zijn, maar het zijn van cruciaal belang dat het geen hele getallen zijn.

18
00:01:33,620 --> 00:01:35,150
‫Ze kunnen ook negatief zijn.

19
00:01:35,780 --> 00:01:36,830
‫En dan zijn er nog de touwtjes.

20
00:01:36,830 --> 00:01:41,960
‫We zijn eerder strings tegengekomen, strings zijn gewoon programmeurs, spreken voor stukjes tekst.

21
00:01:42,290 --> 00:01:44,300
‫En het is in wezen een gegevenstype.

22
00:01:44,330 --> 00:01:51,020
‫Het is een manier om stukjes tekst in het geheugen op te slaan, zodat ze alles kunnen zijn wat je wilt, heel hoog, je weet wel,

23
00:01:51,140 --> 00:01:52,010
‫wat dan ook.

24
00:01:52,010 --> 00:01:56,960
‫Al deze dingen, al die stukjes tekst op mijn scherm zijn strings, waarschijnlijk ergens in het geheugen van de

25
00:01:56,960 --> 00:01:57,410
‫computer.

26
00:01:58,130 --> 00:02:01,130
‫En dan zijn er tot slot jeu de boules, wat een afkorting is voor booleans.

27
00:02:01,130 --> 00:02:04,460
‫En deze hebben maar twee mogelijke waarden, waar of niet waar?

28
00:02:05,150 --> 00:02:11,990
‫Deze gegevenstypen zijn geweldig, maar je kunt toch niet een heel spel vertegenwoordigen met zulke simpele

29
00:02:11,990 --> 00:02:12,800
‫dingen?

30
00:02:13,160 --> 00:02:13,940
‫Nou, dat kan.

31
00:02:13,940 --> 00:02:19,070
‫Als je ze gaat groeperen in dingen zoals objecten.

32
00:02:19,310 --> 00:02:23,420
‫Als je ze eenmaal in een object hebt gegroepeerd, krijgen ze meer betekenis.

33
00:02:23,420 --> 00:02:28,100
‫Je kunt een geheel getal hebben om de leeftijd weer te geven, je kunt een float hebben om ervaringspunten weer te

34
00:02:28,100 --> 00:02:29,150
‫geven, dat soort dingen.

35
00:02:29,510 --> 00:02:35,900
‫En een punt om op te merken is dat we naast objecten ook dingen in blauwdruk hebben die structs worden genoemd.

36
00:02:36,260 --> 00:02:38,450
‫En laat je hier niet teveel in de war brengen.

37
00:02:38,450 --> 00:02:44,390
‫En een struct is in principe hetzelfde als een object, behalve dat het meestal vrij klein is en we geen referenties gebruiken, we

38
00:02:44,390 --> 00:02:49,580
‫geven ze gewoon door en kopiëren ze in het geheugen zonder ons er zorgen over te maken, omdat ze

39
00:02:49,640 --> 00:02:50,540
‫zo klein zijn.

40
00:02:51,080 --> 00:02:55,400
‫En een datatype is, zoals we al zeiden, de vorm van onze data.

41
00:02:56,210 --> 00:02:58,670
‫Laten we dus eens kijken naar enkele voorbeelden van objectstructuren.

42
00:02:58,670 --> 00:03:00,770
‫Dus stel je voor dat we een avonturier hadden.

43
00:03:01,040 --> 00:03:03,410
‫Onze avonturier ziet er misschien een beetje zo uit.

44
00:03:03,410 --> 00:03:04,940
‫Dit is de vorm van zijn gegevens.

45
00:03:05,180 --> 00:03:10,760
‫Het heeft een geheel getal om het niveau weer te geven en een float om representatieve ervaringspunten weer te geven.

46
00:03:11,000 --> 00:03:17,570
‫Nu heb je misschien meerdere avonturiersinstanties die van dezelfde avonturierklasse zijn, dus ze moeten dezelfde

47
00:03:17,570 --> 00:03:22,340
‫gegevensvorm hebben, maar ze hoeven niet dezelfde gegevensinhoud te hebben.

48
00:03:22,550 --> 00:03:27,920
‫Je kunt hier zien dat de tweede avonturier een level van 100 heeft en om de een of andere reden ervaringspunten van min

49
00:03:27,920 --> 00:03:28,250
‫vijf.

50
00:03:28,250 --> 00:03:34,820
‫Maar het maakt niet uit dat je ook een ander type kunt hebben door een andere klasse van objecten te hebben, zoals

51
00:03:34,820 --> 00:03:35,510
‫de speler.

52
00:03:35,900 --> 00:03:37,880
‫En hier zie je dat de vorm anders is.

53
00:03:37,880 --> 00:03:45,350
‫Deze voor het avontuur en de speler zijn niet-compatibele typen en hoe ze ook zijn, je weet dat deze spelers

54
00:03:45,350 --> 00:03:47,210
‫verschillende waarden hebben opgeslagen.

55
00:03:47,210 --> 00:03:52,130
‫Ze hebben een spelersnaam, ze hebben misschien of ze een controller gebruiken of niet, zoals sommige gegevens

56
00:03:52,130 --> 00:03:52,640
‫erin.

57
00:03:52,820 --> 00:03:55,850
‫Laten we nu eens kijken naar enkele structuren die we in het verleden hebben gezien.

58
00:03:55,850 --> 00:04:00,170
‫Nogmaals, onthoud dat structuren en objecten min of meer uitwisselbaar zijn, behalve hun grootte.

59
00:04:00,740 --> 00:04:06,890
‫Dus de eerste die we al een paar keer hebben gezien, is een vector, en een vector is niets anders dan drie drijvers, dat is

60
00:04:06,890 --> 00:04:11,150
‫alles, een X, Y en Z float, die kan worden gebruikt om positie weer te geven.

61
00:04:11,150 --> 00:04:16,850
‫Het kan ook worden gebruikt om schaal weer te geven of we hebben het gebruikt toen we de impuls

62
00:04:16,910 --> 00:04:18,140
‫invoerden in ons ADD-impulsknooppunt.

63
00:04:18,830 --> 00:04:20,960
‫Een ander ding dat we in het voorbijgaan zagen, is een rotator.

64
00:04:21,200 --> 00:04:28,250
‫Merk op dat deze rotator ook maar drie drijvers is, maar dat betekent niet dat deze twee typen compatibel zijn.

65
00:04:28,460 --> 00:04:34,880
‫We kunnen structs verschillende namen geven, zodat we voorkomen dat we ze per ongeluk gebruiken in situaties waar dat niet

66
00:04:34,880 --> 00:04:35,810
‫zou moeten.

67
00:04:36,830 --> 00:04:41,390
‫En we kunnen deze samenvoegen en een nog grotere samengestelde structuur creëren.

68
00:04:41,390 --> 00:04:48,770
‫De transformatie, de locatie van rotatie en schaal van een acteur in een scène.

69
00:04:49,220 --> 00:04:54,350
‫Dus je kunt hier zien dat dit een struct is die bestaat uit andere structs en je kunt deze dingen

70
00:04:54,350 --> 00:04:58,340
‫in principe zoveel nesten als je wilt in die struct binnenin objecten enzovoort, enzovoort.

71
00:04:58,340 --> 00:04:59,720
‫Ze kunnen behoorlijk ingewikkeld worden.

72
00:05:00,500 --> 00:05:03,680
‫Laten we dus eens kijken naar enkele objecten die we in het verleden al hebben gezien.

73
00:05:03,980 --> 00:05:06,950
‫We hebben alle objecten bekeken die acteurs zijn.

74
00:05:06,950 --> 00:05:08,660
‫We weten dat acteurs een soort object zijn.

75
00:05:09,380 --> 00:05:11,800
‫We hebben acteurs gezien die kubussen zijn.

76
00:05:11,810 --> 00:05:13,280
‫Dit is een ander type object.

77
00:05:13,550 --> 00:05:19,100
‫We hebben gezien dat het BP-projectiel ook een soort object is en een acteur is.

78
00:05:19,460 --> 00:05:24,620
‫En we hebben gezien dat we componenten op onze acteurs hebben, die ook soorten objecten zijn.

79
00:05:24,620 --> 00:05:27,800
‫En de statische MASH-component is daar een voorbeeld van.

80
00:05:28,190 --> 00:05:32,780
‫Dus we hebben deze allemaal en deze zijn gewoon gemaakt van die basisgegevenstypen.

81
00:05:32,780 --> 00:05:38,330
‫Diep van binnen kunnen ze in de tussentijd misschien uit meer gecompliceerde structuren bestaan, maar het gaat allemaal

82
00:05:38,330 --> 00:05:39,590
‫om die basisgegevenstypen.

83
00:05:40,130 --> 00:05:46,220
‫Als we dus naar een grafiek als deze gaan kijken, kunnen we direct aan de kleur

84
00:05:46,220 --> 00:05:52,730
‫zien dat deze impuls een vector is, bijvoorbeeld dat de locatie, rotatie en schaal hier slechts drie

85
00:05:52,730 --> 00:05:53,570
‫drijvende-kommagetallen zijn.

86
00:05:54,200 --> 00:05:58,580
‫En we kunnen ook zien dat dit rode selectievakje voor snelheidsverandering een boolean is.

87
00:05:58,580 --> 00:05:59,990
‫Het is een ja of nee antwoord.

88
00:06:00,290 --> 00:06:00,880
‫Dus we zijn van start.

89
00:06:01,030 --> 00:06:07,210
‫Om te begrijpen dat dit de gegevenstypen zijn die beperken wat we kunnen aansluiten op wat.

90
00:06:08,410 --> 00:06:14,560
‫Samengevat, wat we hebben gezien, is dat een gegevenstype de vorm van onze gegevens is, dat objecten slechts verzamelingen

91
00:06:14,560 --> 00:06:19,690
‫van gegevens en functionaliteit zijn, zoals we eerder hebben gezegd, dat structs objecten zijn, maar meestal

92
00:06:19,690 --> 00:06:20,830
‫net iets kleiner.

93
00:06:20,980 --> 00:06:23,500
‫En dat is zo'n beetje wat je moet weten.

94
00:06:23,830 --> 00:06:25,630
‫Ik zie je in de volgende lezing.

