‫Hallo en welkom.
‫In deze lezing gaan we de afstand berekenen die ons platform heeft afgelegd vanaf de startlocatie
‫en deze in de editor weergeven zodat we deze kunnen controleren en debuggen.
‫Laten we erin duiken en kijken hoe dit wordt gedaan.
‫Dus momenteel hebben we gezien dat we het eerste deel van de pseudocode kunnen implementeren.
‫We hebben geschreven dat het MOVE-platform nu vooruit werkt.
‫Het is dus het terugstuurplatform dat we nog niet hebben behandeld.
‫En je kunt de eerste opmerking zien die er is, controleer hoe ver we zijn verhuisd.
‫Dus hoe gaan we controleren hoe ver we zijn gegaan sinds het begin van het spel?
‫Nou, er zijn twee componenten.
‫Allereerst moeten we het verschil tussen twee vectoren en de afstand tussen de twee
‫achterhalen.
‫En het andere dat we moeten uitzoeken, is hoe we kunnen bijhouden waar we zijn begonnen.
‫Nou, het eerste deel is relatief eenvoudig.
‫Gelukkig hoeven we alleen maar naar ons bewegende platform Dot H te gaan en we willen hier een nieuwe variabele
‫maken, maar niet een die wordt blootgesteld aan blauwdrukken.
‫Voor een keer is dit slechts een variabele voor alleen C++, dus we hoeven er geen nieuwe eigenschap overheen te zetten.
‫En het wordt een F-vector genaamd startpositie of locatie om dezelfde terminologie te gebruiken als in
‫Unreal.
‫En we gaan dit niet zomaar op een waarde zetten, want het zou geen zin hebben.
‫De startlocatie.
‫We weten het nog niet, maar we zullen het weten in Begin Play.
‫Dus dat gaan we doen.
‫We gaan over naar de C++ Olympic In-Play na de super in-play weddenschap.
‫We gaan onze startlocatie zo instellen dat we startlocatie kunnen zeggen.
‫Ik herinner me dat we de vector hier niet ervoor plaatsen omdat we proberen te verwijzen naar een
‫klassevariabele in plaats van een lokale variabele te creëren.
‫Dus we gaan deze startlocatie gelijk stellen aan de GET Act-locatie omdat aan het begin van het spel de
‫acteur aan het begin staat.
‫Dus we hebben de startlocatie ingesteld en dat betekent nu dat we een variabele hebben die de hele instantie van deze
‫klasse aanhoudt, dus we kunnen hem overnemen en ook overnemen.
‫En we hebben een variabele waarmee we kunnen proberen de afstand ertussen te vinden.
‫We kunnen zeggen: Hé, hoe ver wijkt de huidige locatie af van die startlocatie?
‫Welnu, om dit te kunnen doen, moet ik een beetje meer C++-syntaxis aan onze woordenlijst toevoegen.
‫Ten eerste zal het de Scope Resolution Operator worden genoemd, die een beetje verwarrend wordt genoemd, maar
‫eigenlijk is het deze dubbele dubbele punt-operator die we eerder in een C++-bestand hebben gezien.
‫En in wezen doet het je alleen maar in een klasse kijken op dezelfde manier als de DOT-operator, waarmee je
‫in een instantie van een klasse kunt kijken.
‫Laten we dit dus wat nader bekijken.
‫We weten dat de tick-functie tot de klasse bewegend platform behoort, maar niet tot een bepaalde instantie
‫van die klasse.
‫Alle gevallen van bewegend platform delen dezelfde implementatie van tick, wat het betekent om een klas te
‫zijn.
‫Dus de scope-resolutie-operator hier tussen bewegend platform en Tick vertelt ons eigenlijk dat dit het vinkje is
‫dat behoort tot de klasse bewegend platform.
‫Op dezelfde manier als voorheen gebruikten we de puntoperator om de x te krijgen die hoort bij de
‫huidige locatie.
‫De huidige locatie was een bepaalde instantie van een F-vector, maar we kunnen deze gebruiken om functies te verkrijgen
‫die tot de vectorklasse behoren en niet op een bepaalde instantie van die klasse draaien.
‫Dus een voorbeeld is het verkrijgen van de afstand tussen twee vectoren.
‫De manier waarop we dit in Unreal doen, is door een functie te gebruiken die zich in de vectorklasse bevindt.
‫Dus we zouden F vector doen, dan dubbele punt om binnen die klasse te kijken naar welke functies het voor ons beschikbaar heeft
‫en waar we doorheen kunnen kijken.
‫En nu vestig ik uw aandacht op de autocomplete die op dit moment verschijnt.
‫Ik heb het in het verleden niet genoemd, maar wanneer we deze bewerkingen uitvoeren, probeert
‫het eigenlijk slim te zijn en ons te vertellen welke functies beschikbaar zijn binnen al die f-vectorklasse.
‫En je ziet dat het er nogal wat zijn.
‫Degene die we zoeken heet Dist Short voor afstand.
‫Nu zul je ook merken dat er een is die eigenlijk afstand wordt genoemd en dat is eigenlijk synoniem.
‫We zouden een van beide kunnen gebruiken, maar ik ga de kortere gebruiken om de code beknopter
‫te houden en we kunnen de haakjes openen.
‫En nogmaals, de autocomplete komt ons te hulp in die zin dat het ons vertelt wat het inhoudt als argumenten.
‫We kunnen zien dat het eerste argument een vector drie D is en het tweede ook een effect op 3D.
‫Dus het feit dat het hier Factor 3D heet is een beetje raar, maar het vraagt eigenlijk om
‫een F-vector.
‫Dus het zegt dat als je twee argumenten doorgeeft, beide factoren zijn.
‫Ik zal je vertellen dat mijn retourwaarde dat dit beetje hier aan de linkerkant een dubbele zal zijn.
‫Nu is een double in wezen gewoon een nauwkeurigere float.
‫Dus we zouden eigenlijk kunnen zeggen.
‫Dat is een vlotter die hier vandaan komt.
‫De expressie die we hebben gemaakt, maakt een float.
‫Geweldig.
‫We gaan dus proberen de afstand tussen de startlocatie te vinden.
‫Dus we gaan startlocatie typen als het eerste argument.
‫En dan wordt de tweede de huidige locatie.
‫Maak je geen zorgen, in dit stadium maakt het eigenlijk niet uit op welke manier we deze ronde doen,
‫omdat de afstand tussen twee vectoren hetzelfde zal zijn.
‫Of je nu van A naar B of van B naar A begint, het zal altijd dezelfde afstand zijn.
‫Dus we hadden deze twee kanten op kunnen zetten, als je wilt.
‫Dus nu hebben we een uitdrukking die een float retourneert.
‫Ik daag je uit om een nieuwe eigenschap met deze uitdrukking bij te werken, zodat we kunnen zien wat de
‫waarde ervan is.
‫Dus maak een nieuwe you property float en noem het wat je wilt en werk dit elke take bij
‫met de waarde van f vector dest en speel dan het spel en kijk wat er gebeurt.
‫Krijg je de output die je zou verwachten?
‫Groeit het zo snel als je zou verwachten?
‫Pauzeer de video en probeer het.
‫Oké.
‫Welkom terug.
‫Dus we gaan allereerst het nieuwe pand creëren.
‫Dus ik ga dit boven onze startlocatie plaatsen, zodat we alle eigendommen samen groeperen.
‫Ik ga ergens een nieuwe eigenschap laten bewerken, een feit.
‫We hoeven dit niet te kunnen bewerken.
‫Dus je zou je kunnen voorstellen dat overal betekent dat je het kunt bewerken.
‫Welnu, we hebben ook overal een zichtbaar die ons niet toestaat om het te bewerken, maar ons wel in staat stelt om het te zien.
‫Dus dat is wat ik in plaats daarvan ga gebruiken.
‫Ik laat de categorie hier voor de eenvoud weg, omdat we deze variabele alleen gebruiken om te kunnen
‫zien wat er aan de hand is.
‫Het wordt een type float, zoals ik al zei, en ik noem dit de verplaatste afstand zodat het duidelijk
‫is waar we naar kijken in de inspecteur.
‫En ik ga de standaardwaarde instellen op min één, zodat we weten dat we het hebben bijgewerkt.
‫Als er min één staat, weten we dat de update niet is doorgegaan.
‫Dus ik ga deze afstand verplaatst nemen.
‫We gaan over naar onze implementatie en nemen en we gaan de verplaatste afstand instellen die
‫gelijk is aan de dubbele puntafstand.
‫Gebruik dus die operator voor bereikresolutie om de afstandsfunctie te bemachtigen en beëindig de regel
‫met een puntkomma.
‫Oke.
‫Dus we gaan door naar Unreal en klikken op de compileerknop en we kunnen doorgaan en de terminal
‫sluiten.
‫En we zouden deze afstand moeten zien verschoven, weergegeven als min één.
‫Je kunt zien dat het grijs is omdat ik het niet kan bewerken omdat het zichtbaar is, toch niet bewerken.
‫Dus laten we doorgaan en op play drukken en we zullen ervoor moeten zorgen dat we het bewegende platform in
‫de omtrek selecteren en we kunnen kijken naar de afstand die hier is verplaatst en je kunt
‫zien dat het pand snel in beslag neemt op ongeveer 1 tot 300 per seconde.
‫Dus het gaat met de snelheid die ik zou verwachten, namelijk 100 per seconde.
‫Ziet er dus uit als een succes.
‫We hebben de afgelegde afstand kunnen berekenen en ook visualiseren.
‫Goed spul.
‫Ik zie je in de volgende lezing.