‫In deze lezing gaan we een spelercontroller samenstellen die informatie ontvangt dat het spel is
‫beëindigd vanuit de spelmodus en dit herstartgedrag zal creëren dat na 5 seconden het niveau opnieuw laadt
‫nadat de speler is overleden.
‫Laten we erin duiken en kijken hoe het gedaan is.
‫Dus wanneer het spel inderdaad voorbij is, moeten we de spelercontroller op de hoogte stellen en we moeten ook een spelercontroller in onze C++
‫hebben, zodat we het gedrag kunnen implementeren om ons toe te staan het niveau opnieuw op te starten en
‫dergelijke.
‫Dus het eerste wat je moet doen is wanneer dit punt wordt vernietigd, ten eerste, we loggen gewoon willekeurig.
‫We willen wel even checken of het spel afgelopen is of niet.
‫Nu zijn er twee scenario's.
‫Een is waar we winnen en een is waar we verliezen.
‫De verliezen zijn de eerste die ik ga aanpakken omdat het het gemakkelijkst is.
‫Als de gedode pion de speler is die je verliest, dan is dat alles.
‫Je zou ervoor kunnen kiezen om meerdere levens te hebben met verschillende iteraties van deze spelmodus, maar dat ga ik
‫niet doen.
‫Ik ga gewoon een vrijgezel leven hebben.
‫Als je sterft, game over.
‫Misschien wilt u opnieuw opstarten.
‫Dus hoe controleren we of deze pion een spelercontroller is?
‫Nou, dat is vrij eenvoudig.
‫We kunnen gewoon een worp doen, zodat we een worp kunnen doen naar een spelercontroller en voor de gedode pion.
‫En als dit niet nul is.
‫Dus laten we de wijzer nemen.
‫Een spelerbesturingsaanwijzer noem het de spelercontroller en sla het resultaat van die aanwijzer hier op.
‫En we gaan eigenlijk zeggen als dit niet nee is.
‫Dus als de spelercontroller geen nulaanwijzer is, weten we dat het de speler is die is overleden en dat het spel voorbij
‫is voor de speler.
‫Dus wat we willen doen, is een beroep doen op die spelercontroller-methode.
‫We hebben al laten doorschemeren dat er een game is afgelopen methode.
‫Laten we hier eens naar kijken.
‫Als we een controle P doen en naar de spelercontroller dot h kijken, kunnen we zoeken naar een spel dat is afgelopen.
‫Je kunt zeker zien dat er hier een virtuele methode is genaamd game is afgelopen en je kunt zien dat er een
‫focus op het eindspel is.
‫Op welke acteur moeten we ons uiteindelijk richten?
‫Spel is standaard nulpunten en dat is waarschijnlijk wat ik ga gebruiken.
‫En dan gaan we zeggen: is dit de winnaar?
‫Kortom, je moet de speler de controle geven en weten of ze al dan niet hebben gewonnen.
‫En dat is vrij eenvoudig, laten we zeggen, in dit geval.
‫Nee, dat hebben ze niet.
‫Dus we gaan een play controller arrow game doen is afgelopen, dan ga ik null pointer plaatsen voor de focus van
‫het eindspel omdat we die functie niet echt nodig hebben en dan is de winnaar.
‫Het zal gewoon vals zijn.
‫Dit is niet de winnende spelercontroller, want het is degene die zojuist is overleden.
‫Het is dus tijd voor een kleine uitdaging die u kunt implementeren.
‫Spel is geëindigd in een play-controller.
‫Dat betekent dat we een C++-spelercontroller moeten maken, de blauwdruk-subklasse moeten maken, die blauwdruk-subklasse standaard uit
‫onze spelmodus moeten voortbrengen en dan wil je doorgaan en overschrijven.
‫Het spel is afgelopen en plaats daar een logbericht om te controleren of we inderdaad krijgen.
‫Die wedstrijd is op het juiste moment afgelopen.
‫Pauzeer, video en ga aan de slag.
‫Oké.
‫Welkom terug.
‫Dus, stap één, maak die C++-spelercontroller, maak een nieuwe C++-klasse aan.
‫Ga dan op zoek naar eens kijken, spelercontroller.
‫Vervolgens gaan we dit de shooter player-controller noemen.
‫Ga je gang en creëer die klasse.
‫Als dat eenmaal is gebeurd, willen we naar onze blauwdrukken gaan en een blauwdrukklasse maken die erop is gebaseerd.
‫Dus we willen de shooter player-controller als basis, en we gaan het BP noemen,
‫de shooter player-controller onderstrepen.
‫Dit is momenteel niet echt nodig, maar later willen we wat UI-middelen
‫aansluiten op de spelercontroller.
‫Dus we zullen het daar klaar hebben.
‫Dan gaan we naar de BP KML-spelmodus en plaatsen die in omdat we de standaard
‫spelercontrollerklasse willen veranderen van de spelercontroller in onze BPM, de schoolshooter-spelercontroller.
‫Stoer.
‫Dan willen we overstappen.
‫Ons spel is afgelopen.
‫Dus laten we eens kijken of we naar de spelerbesturing gaan naar h.
‫We kunnen zien dat dit in het openbare gedeelte is.
‫Hier is de handtekening.
‫Laten we het kopiëren.
‫Ga naar als shooter play-controller dot h en maak openbaar.
‫Aan die virtuele leegte is het spel afgelopen.
‫Cool en we moeten al overschrijven, want dat werd duidelijk van ergens naar overschreven.
‫En wat we dan kunnen doen, is dat we het kunnen implementeren.
‫Control shift p we willen het een super Remember noemen.
‫En we willen doen spel is zo afgelopen.
‫En we willen de focus van het eindspel doorgeven en de B is winnaar en dan willen we inloggen.
‫Dus je logt in.
‫Hij is mijn macro daar.
‫Wij zijn klaar.
‫Het zal het logbericht zijn dat aan het einde uitkomt.
‫Dus laten we compileren en kijken of dat werkt.
‫Ik ga naar het uitvoerlogboek.
‫Druk op spelen.
‫Ga en laat je vermoorden, eigenlijk.
‫De gezondheid gaat langzaam achteruit.
‫En dan zouden we een bericht moeten zien.
‫Krijgen we de boodschap?
‫Nee.
‫Dus laten we eens kijken.
‫Wat is hier de spelercontroller?
‫BP underscore shooter player controller lijkt de juiste te zijn.
‫We hebben het override-spel is afgelopen.
‫Hier zie ik een bug.
‫Nu, dat is iets dat sommigen van jullie misschien hebben opgemerkt en naar het
‫scherm hebben geschreeuwd, is dat we hier onze spelercontroller hebben waarnaar we aan het casten zijn en ik raak in de war met
‫de echte pion van de speler.
‫Dus wat we hier willen doen, is dat we willen zeggen dat we de controleur krijgen van de pion die werd gedood.
‫Dus pion gedode stip krijgt controllerfout.
‫Dus de pijl krijgt de controller en dan willen we die naar de spelercontroller casten.
‫En als dat nul is, oké, dat zou moeten werken.
‫Dus laten we doorgaan en dat uitproberen.
‫Ga je gang en druk op play.
‫Castle is weer vermoord.
‫En ook deze keer krijgen we geen bericht.
‫En deze keer is het om een subtiele reden.
‫Dat komt omdat we ons losmaken van de controller.
‫Voordat we dit noemen -- vermoord.
‫Dus als het de controlerende pion probeert te krijgen, is dat eigenlijk nee, er is geen controlerende pion meer.
‫We moeten deze melding dus doen net voordat we het loskoppelen van de controller.
‫I omvat het opschuiven van de lijn die onze spelmodus in handen krijgt.
‫Ik denk niet dat dat uitmaakt, maar nu ik er echt over nadenk, ja, natuurlijk wel.
‫Dus laten we naar ons niveau gaan en spelen.
‫Laten we gaan en beschoten worden.
‫En als dat eenmaal is gebeurd, kunt u zien dat we klaar zijn, wordt afgedrukt zoals we willen.
‫Dus onderweg hadden we een paar haperingen.
‫Niet jouw schuld als je dat niet kreeg in de uitdaging.
‫Tot dan toe heb je al het andere gedaan.
‫Dat is geweldig.
‫Dus hopelijk heb je misschien een poging gedaan om dat te debuggen, maar maak je geen zorgen als je vastloopt op die dingen.
‫Het laatste dat ik hier wilde doen, is het spel daadwerkelijk opnieuw opstarten met een timer.
‫De manier waarop we dit kunnen doen, is vrij eenvoudig, omdat de spelercontroller eigenlijk een herstartmethode
‫heeft.
‫Dus als we dit gaan bekijken, zou het een herstartniveau moeten zijn.
‫Dat is degene die we willen bellen en we willen dit op een timer doen.
‫Dus we hebben eerder timers gebruikt om dingen te herhalen, maar we kunnen het ook gebruiken om een actie met een bepaald
‫bedrag uit te stellen.
‫Dus ik ga naar de shooter-speler, controller, punt H en maak hier een privé-eigendom.
‫Privé kan uw eigendom zijn dat overal kan worden bewerkt.
‫Vlot.
‫Dat wordt de herstartvertraging.
‫U begrijpt waarom we hier al een blauwdrukbasis voor nodig hebben.
‫Ik geef het een 5/2 vertraging.
‫Dan ga ik over naar de C++ en we willen een get timer well doen, timer manager.
‫En daar kunnen we dan wat mee.
‫Dan moeten we opnemen.
‫Dus hash include en het wordt de timermanager punt H.
‫Dan zouden we de puntoperator moeten kunnen gebruiken omdat het retourtype hier een referentie is en
‫we een ingestelde timer gaan doen.
‫En hier moeten we een timer-handvat doorgeven.
‫Dus laten we in het privégedeelte een set maken.
‫Zou een f-timerhendel kunnen zijn.
‫Ik noem het de herstarttimer zoals.
‫Dus dat wordt het handvat dat we doorgeven aan onze ingestelde timer.
‫Het volgende dat we bij de vijfde handtekening hier nodig hebben, is om het object te hebben dat we willen aanroepen, en
‫dat wordt dit.
‫En dan zal er zijn dat ik denk dat het gewoon de methode zelf zou moeten zijn.
‫Dus we kunnen dat doen door ampersand te doen.
‫En dan is het eigenlijk de methode, de methode van het herstartniveau, die we willen aanroepen en
‫die werd gedefinieerd op de A-spelercontroller.
‫Een spelercontroller dus.
‫Dubbelpunt, dubbelpunt herstartniveau.
‫En dan moeten we gewoon de vertraging doorgeven die we al hebben gedefinieerd als de herstartvertraging.
‫Dus doe dat, maar een puntkomma aan het einde daar en hopelijk moeten we onszelf na 5 seconden opnieuw
‫opstarten.
‫We gaan het testen nu een beetje gemakkelijker maken door ons geweer te openen en het net een beetje
‫dodelijker te maken.
‫Dus ik ga naar de standaardinstellingen, doe de schade op 50.
‫Dus word gedood met twee schoten.
‫Laten we gaan en op play drukken.
‫Laat ons snel vermoorden.
‫En dan, na 5 seconden, moeten we hopelijk het level herstarten, we herstarten en we zijn terug in het level.
‫Dus onze timer werkt zoals we verwachten.
‫In latere versies zul je zien dat in plaats van opnieuw op te starten, je een foutmelding te zien krijgt die er
‫zo uitziet en spreekt over een mislukte reis en iets zegt over je laffe sandbox,
‫bla bla bla.
‫Welnu, de manier waarop we dit moeten omzeilen wanneer we proberen opnieuw op te starten en willen
‫controleren of onze herstart werkt, is dat we naar ons punt, punt, punt menu gaan in plaats van het afspeelmenu en we moeten
‫spelen als een op zichzelf staand spel.
‫Als het als je een op zichzelf staand spel speelt, duurt het iets langer om op te starten,
‫maar het herstarten zal zoals verwacht werken en we zien het niveau opnieuw geladen.
‫Het is duidelijk dat er niet veel aanwijzingen zijn dat dit gaat gebeuren.
‫Dus we gaan kijken naar UI in de volgende colleges.
‫Ik zie je daar.