‫Hallo en welkom.
‫In deze lezing gaan we het concept van lokale variabelen onderzoeken, variabelen die alleen binnen
‫een bepaalde functie bestaan.
‫En we gaan kijken hoe we dit kunnen gebruiken om onze locatie op een andere waarde in te stellen dan die is opgeslagen
‫in de my-vector.
‫Laten we erin duiken.
‫Dus tot nu toe hebben we te maken gehad met variabelen die tot een klasse behoren.
‫We hebben dit in Blueprint gedaan en nu in C++.
‫En dit betekent dat de variabele zo lang leeft als de instantie van de klasse.
‫Elke instantie krijgt zijn eigen kopie van een variabele, maar terwijl de klasse-instantie in leven is, is de variabele
‫twee.
‫Dit concept waar ik het net over had, heeft eigenlijk een naam.
‫Het heet Scope.
‫Wat het betekent, is hoe lang de variabele leeft?
‫En ik heb zojuist een instantievariabele beschreven die een variabele is die net zo lang meegaat als een bepaalde instantie van
‫een klasse.
‫Nu zijn er ook andere soorten variabelen.
‫Er zijn variabelen die zo lang leven als een functie.
‫Kortom, wanneer u een bepaalde functie aanroept, wordt die functie uitgevoerd en zodra de functie is
‫voltooid, sterft de variabele.
‫Dus in C++ is een variabele in het algemeen geldig tussen de accolades in de syntaxis.
‫Het is dus een goede vuistregel.
‫Het is niet altijd precies correct, maar de tick-functie, bijvoorbeeld, we hebben hier
‫enkele accolades en als we een variabele binnen deze tick-functie zouden declareren, dan zou deze maar een keer bestaan.
‫De tick-functie wordt aangeroepen en de volgende keer zou deze opnieuw worden gemaakt.
‫Het bewegende platform.
‫Als we dat kunnen zien, als we kijken naar bewegend platformpunt h, kun je zien dat de
‫my-vector wordt gedeclareerd binnen enkele accolades die behoren tot de definitie van de klasse, en daarom leven deze variabelen zo lang
‫als een instantie van de klas doet.
‫Dat wil ik je dus graag bewijzen.
‫Dus laten we ingaan op het bewegende platform punt CP en laten we hierin een lokale variabele maken.
‫Dus ik ga het op precies dezelfde manier maken als wij hebben gedaan.
‫Als we een fout declareren in de kop van het bestand, hebben we een F-vector, dan de naam van de
‫vector, ik noem het lokale vector.
‫En dan kunnen we dit een waarde instellen wanneer we het maken.
‫We kunnen dat doen met behulp van de constructor voor F-vector, of we kunnen het doen vanuit een andere variabele,
‫net zoals we een variabele kunnen doorgeven aan een functie.
‫We kunnen dus allereerst alleen de constructormethode gebruiken.
‫Dus we krijgen de F-vector en ik geef het een 1 tot 3 en dan een puntkomma, het einde van de
‫regel.
‫Dus dat is nu een lokale variabele.
‫Het bestaat alleen binnen deze functie en wordt elke keer dat de functie wordt aangeroepen opnieuw ingesteld.
‫Dus als ik zoiets zou doen, als ik iets zou doen zoals we hebben op regel
‫29 met de my-vector die wordt bijgewerkt, kunnen we een lokale vector hebben, we kunnen de lokale vector dot z gelijk hebben
‫aan de lokale vector dot z plus een.
‫En als ik mijn locatie op die lokale vector zou instellen, zal het elk frame hetzelfde zijn omdat
‫we resetten en vanaf dezelfde locatie beginnen.
‫Een, twee, drie, elke tikfunctie.
‫Deze functie bestaat dus eigenlijk alleen lokaal.
‫Dus ik zou graag willen dat je een klein experiment uitprobeert als uitdaging om de lokale vector van de mijn vector in te stellen.
‫Dus je gaat het in principe doen in plaats van het vanuit de constructor in te stellen, je gaat
‫het instellen op basis van de waarde die momenteel in mijn vector staat, die een kopie van die vector naar je lokale vector gaat
‫nemen.
‫Dan wil ik dat je op een locatie instelt met behulp van de lokale vector.
‫En omdat we die lokale vector elk frame proberen bij te werken, laten we eens kijken wat het effect is.
‫Beweegt het platform?
‫Zou je het verwachten en het gaan uitproberen, code afspelen compileren en kijken of het daadwerkelijk video plaatst en
‫probeer het.
‫Oké.
‫Welkom terug.
‫Dus ik ga in plaats van de constructor hier te gebruiken om de lokale vector in te stellen, in plaats
‫daarvan mijn vector instellen.
‫Dus we nemen de waarde die momenteel in mijn vector is opgeslagen en we zetten het in de lokale
‫vector en dan werken we de lokale vector bij.
‫We verhogen, dat gezegd hebbende, met één per frame.
‫En dan zou ik de actieve locatie willen instellen in plaats van vanuit mijn vector.
‫We gaan het in plaats daarvan instellen vanuit de lokale vector.
‫Wat gaat er in dit geval gebeuren, denk je?
‫Laten we doorgaan en het uitzoeken.
‫Ik ga op de compileerknop drukken en ga door en druk op play
‫en zal zien dat het platform nog steeds naar rechts beweegt, maar niet omhoog in de Z-richting.
‫Dus je kunt zien dat dit niet echt een impact heeft, het verhogen van de lokale vector omdat
‫het wordt gereset van de huidige waarde in mijn vector, elk frame.
‫Mijn vector wordt echter nog steeds bijgewerkt.
‫Elk frame wordt de y-waarde verhoogd, elk frame.
‫En daarom zien we de beweging naar rechts.
‫Dus een manier waarop we kunnen zien dat deze verandering naar lokale vector gewoon lokaal is, is door deze waarde te verhogen
‫van één naar misschien 100.
‫Dus we voegen 100 toe aan de lokale vectorwaarde.
‫We kunnen overgaan en compileren en dan op play drukken.
‫En wat je gaat zien is dat het platform eigenlijk 100 eenheden hoger in de lucht is.
‫Laten we hier even de tijd nemen en uitwerpen met F8 en het spel pauzeren met de pauzeknop in de
‫hoofdwerkbalk en vervolgens een bewegend platform selecteren om het te bekijken in het detailvenster.
‫Om dat te doen, moet ik er echt op klikken in de viewport, om de een of andere reden werkt het soms niet om er gewoon
‫op te klikken in de omtrek.
‫M Ik wil je erop wijzen dat de waarde in mijn vector, de Z-waarde in mijn vector 100 eenheden
‫kleiner is dan de Z-locatie van de transformatie.
‫Je kunt dus zien dat het toevoegen aan die lokale vector een impact heeft gehad.
‫We hebben onze locatie 100 eenheden hoger dan de locatie in de mijn vector.
‫En wat echt geweldig is aan lokale variabelen, is dat wanneer de functie zijn specifieke uitvoering heeft voltooid,
‫ze worden gewist en opnieuw worden ingesteld.
‫U weet dus altijd wat u kunt verwachten met de lokale variabele.
‫U weet altijd welke waarde erin zal staan, in tegenstelling tot een klassevariabele die op elk moment kan worden
‫bijgewerkt vanuit een andere functie.
‫Dus we gaan deze lokale variabelen in een paar colleges aan de tand voelen.
‫Laten we verder duiken.