‫Hallo en welkom.
‫In deze lezing gaan we kijken naar deze kleine pinnen en de verschillende kleuren waarin
‫ze binnenkomen en begrijpen dat dit verschillende gegevenstypen zijn die beperken wat we kunnen aansluiten op wat.
‫Dus laten we er meteen in duiken en eens kijken naar wat ik bedoel met een gegevenstype.
‫Dus een redelijk werkbare definitie van gegevenstype is dat het bepaalde stukjes gegevens binair in het
‫geheugen van uw computer voorstelt.
‫En het kan ook gewoon een manier zijn om te beperken wat we met dit stukje gegevens kunnen doen.
‫Het gaat dus niet altijd om verschillende representaties.
‫En je kunt het zien als de vorm van de gegevens in die zin dat een vierkante pen niet in een rond gat
‫past.
‫We kunnen dus niet het verkeerde type gegevens in het verkeerde type pin krijgen.
‫Laten we dus eens kijken naar enkele voorbeelden van gegevenstypen.
‫Er is het gehele getal, wat een klassiek voorbeeld is.
‫Een geheel getal is een geheel getal, dus het heeft waarden als 223 -14, maar niet zoiets als 1. 2.
‫Dat zou een float zijn, wat een afkorting is voor floating point number.
‫En dit zijn in feite getallen waarbij je een decimale punt hebt en deze getallen kunnen heel groot of
‫heel klein zijn, maar het zijn van cruciaal belang dat het geen hele getallen zijn.
‫Ze kunnen ook negatief zijn.
‫En dan zijn er nog de touwtjes.
‫We zijn eerder strings tegengekomen, strings zijn gewoon programmeurs, spreken voor stukjes tekst.
‫En het is in wezen een gegevenstype.
‫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,
‫wat dan ook.
‫Al deze dingen, al die stukjes tekst op mijn scherm zijn strings, waarschijnlijk ergens in het geheugen van de
‫computer.
‫En dan zijn er tot slot jeu de boules, wat een afkorting is voor booleans.
‫En deze hebben maar twee mogelijke waarden, waar of niet waar?
‫Deze gegevenstypen zijn geweldig, maar je kunt toch niet een heel spel vertegenwoordigen met zulke simpele
‫dingen?
‫Nou, dat kan.
‫Als je ze gaat groeperen in dingen zoals objecten.
‫Als je ze eenmaal in een object hebt gegroepeerd, krijgen ze meer betekenis.
‫Je kunt een geheel getal hebben om de leeftijd weer te geven, je kunt een float hebben om ervaringspunten weer te
‫geven, dat soort dingen.
‫En een punt om op te merken is dat we naast objecten ook dingen in blauwdruk hebben die structs worden genoemd.
‫En laat je hier niet teveel in de war brengen.
‫En een struct is in principe hetzelfde als een object, behalve dat het meestal vrij klein is en we geen referenties gebruiken, we
‫geven ze gewoon door en kopiëren ze in het geheugen zonder ons er zorgen over te maken, omdat ze
‫zo klein zijn.
‫En een datatype is, zoals we al zeiden, de vorm van onze data.
‫Laten we dus eens kijken naar enkele voorbeelden van objectstructuren.
‫Dus stel je voor dat we een avonturier hadden.
‫Onze avonturier ziet er misschien een beetje zo uit.
‫Dit is de vorm van zijn gegevens.
‫Het heeft een geheel getal om het niveau weer te geven en een float om representatieve ervaringspunten weer te geven.
‫Nu heb je misschien meerdere avonturiersinstanties die van dezelfde avonturierklasse zijn, dus ze moeten dezelfde
‫gegevensvorm hebben, maar ze hoeven niet dezelfde gegevensinhoud te hebben.
‫Je kunt hier zien dat de tweede avonturier een level van 100 heeft en om de een of andere reden ervaringspunten van min
‫vijf.
‫Maar het maakt niet uit dat je ook een ander type kunt hebben door een andere klasse van objecten te hebben, zoals
‫de speler.
‫En hier zie je dat de vorm anders is.
‫Deze voor het avontuur en de speler zijn niet-compatibele typen en hoe ze ook zijn, je weet dat deze spelers
‫verschillende waarden hebben opgeslagen.
‫Ze hebben een spelersnaam, ze hebben misschien of ze een controller gebruiken of niet, zoals sommige gegevens
‫erin.
‫Laten we nu eens kijken naar enkele structuren die we in het verleden hebben gezien.
‫Nogmaals, onthoud dat structuren en objecten min of meer uitwisselbaar zijn, behalve hun grootte.
‫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
‫alles, een X, Y en Z float, die kan worden gebruikt om positie weer te geven.
‫Het kan ook worden gebruikt om schaal weer te geven of we hebben het gebruikt toen we de impuls
‫invoerden in ons ADD-impulsknooppunt.
‫Een ander ding dat we in het voorbijgaan zagen, is een rotator.
‫Merk op dat deze rotator ook maar drie drijvers is, maar dat betekent niet dat deze twee typen compatibel zijn.
‫We kunnen structs verschillende namen geven, zodat we voorkomen dat we ze per ongeluk gebruiken in situaties waar dat niet
‫zou moeten.
‫En we kunnen deze samenvoegen en een nog grotere samengestelde structuur creëren.
‫De transformatie, de locatie van rotatie en schaal van een acteur in een scène.
‫Dus je kunt hier zien dat dit een struct is die bestaat uit andere structs en je kunt deze dingen
‫in principe zoveel nesten als je wilt in die struct binnenin objecten enzovoort, enzovoort.
‫Ze kunnen behoorlijk ingewikkeld worden.
‫Laten we dus eens kijken naar enkele objecten die we in het verleden al hebben gezien.
‫We hebben alle objecten bekeken die acteurs zijn.
‫We weten dat acteurs een soort object zijn.
‫We hebben acteurs gezien die kubussen zijn.
‫Dit is een ander type object.
‫We hebben gezien dat het BP-projectiel ook een soort object is en een acteur is.
‫En we hebben gezien dat we componenten op onze acteurs hebben, die ook soorten objecten zijn.
‫En de statische MASH-component is daar een voorbeeld van.
‫Dus we hebben deze allemaal en deze zijn gewoon gemaakt van die basisgegevenstypen.
‫Diep van binnen kunnen ze in de tussentijd misschien uit meer gecompliceerde structuren bestaan, maar het gaat allemaal
‫om die basisgegevenstypen.
‫Als we dus naar een grafiek als deze gaan kijken, kunnen we direct aan de kleur
‫zien dat deze impuls een vector is, bijvoorbeeld dat de locatie, rotatie en schaal hier slechts drie
‫drijvende-kommagetallen zijn.
‫En we kunnen ook zien dat dit rode selectievakje voor snelheidsverandering een boolean is.
‫Het is een ja of nee antwoord.
‫Dus we zijn van start.
‫Om te begrijpen dat dit de gegevenstypen zijn die beperken wat we kunnen aansluiten op wat.
‫Samengevat, wat we hebben gezien, is dat een gegevenstype de vorm van onze gegevens is, dat objecten slechts verzamelingen
‫van gegevens en functionaliteit zijn, zoals we eerder hebben gezegd, dat structs objecten zijn, maar meestal
‫net iets kleiner.
‫En dat is zo'n beetje wat je moet weten.
‫Ik zie je in de volgende lezing.