‫Hallo en welkom.
‫In deze lezing gaan we ervoor zorgen dat de win-voorwaarde werkt, zodat ik alle vijanden in mijn level
‫kan doden en het zal me dit win-scherm laten zien.
‫HAREL Laten we erin duiken en kijken hoe het moet.
‫We zouden dus graag willen dat onze speler dit spel daadwerkelijk kan winnen.
‫Op dit moment kunnen ze dat niet.
‫Dus hoe gaan we dat doen?
‫Nou, je zou het op verschillende manieren kunnen doen.
‫Een daarvan zou zijn wanneer Pawn Killed wordt genoemd en de pion niet de afspeelcontroller is.
‫Maar dan kunnen we aftrekken van een variabele die zegt hoeveel lucht er in de wereld is, hoeveel we er moeten
‫doden.
‫En als dat tot nul daalt, kunnen we het spel beëindigen in het voordeel van de speler.
‫Ik denk echter dat dat een beetje kwetsbaar is, omdat het vereist dat we hoeveel vijanden er in de wereld op
‫twee plaatsen plaatsen, in wezen in de spelmodus moet zijn, maar het moet ook in de wereld zijn
‫wanneer je de vijanden neerhalen en die twee kunnen uit de pas lopen, en dat gaat
‫problemen veroorzaken.
‫Dus de manier waarop ik dit het liefst zou doen, is door simpelweg te zeggen, laten we alle vijanden in de wereld tellen elke keer dat een pion wordt gedood,
‫laten we een hertelling doen, een hoofdtelling van alle A. L. en kijk welke er
‫nog leven.
‫Als een van hen nog in leven is, zullen we het spel nog niet beëindigen.
‫Plaats het spel is nog niet voorbij.
‫Maar als ze allemaal dood zijn en de afspeelcontroller niet, dan heeft de speler gewonnen.
‫Dus om dit te kunnen doen, moeten we een manier hebben om een spelercontroller te vragen of deze dood is
‫of niet.
‫Sorry, ik bedoel, de controller.
‫Dus laten we op zoek gaan naar onze shooter-controller dot H.
‫En wat we hier willen doen, is een nieuwe openbare methode creëren waarmee we kunnen vragen of deze dood is
‫of niet.
‫Dus we gaan doen dat een pool is gebaseerd, het is dood, en het zal een contrast zijn omdat het niet zou moeten veranderen
‫wat er feitelijk in de controller gebeurt wanneer deze wordt aangeroepen.
‫En we kunnen doorgaan en een implementatie maken.
‫Nu zouden we de controle moeten hebben over een -- die ons kan vertellen of hij dood is of niet.
‫Als we daar nog eens naar gaan kijken, kijken we naar het schietpersonage, dat een --.
‫Denk eraan, we hebben al een dode contactfunctie daar.
‫Dus wat we in wezen willen doen, is het verzoek doorgeven aan de schutter die ik nu bestuur.
‫Ja.
‫Eén ding is, je zou kunnen zeggen in de KML all game-modus, je zou de controller
‫kunnen pakken, de -- die dat bestuurt, een cast kunnen doen en dan controleren of dat -- dood is.
‫Dat is echter over het algemeen niet de beste methode, omdat het betekent dat als er
‫plotseling iets verandert in de manier waarop we de dood berekenen en of de luchtcontroller verschillende soorten -- gaat besturen, we
‫plotseling de spelmodus moeten veranderen, wat niet zin hebben.
‫Het is dus beter om dit te doen en de doorgifte in de luchtregelaars robuuster te doen.
‫Het weerhoudt ons ervan te rommelen in de binnenkant van de klas van iemand anders, wat over het algemeen betekent
‫dat we kunnen beperken wanneer dingen veranderen, we kunnen beperken hoeveel klassen we moeten gaan en aanraken, bijwerken en
‫veranderen, wat altijd een goede zaak is.
‫Dus wat we willen doen is de -- en de -- casten om er zeker van te zijn dat het een shooter-personage is.
‫Dus laten we een cast doen.
‫Het wordt een schutter.
‫Karakter en ik denk dat we het moeten doen, het moet bovenaan oogcontrole zijn om ervoor te zorgen dat
‫we het personage van de shoot zo kennen.
‫En dan gaan we de cast een get doen -- en we willen dit in een variabele opslaan,
‫zodat het een shooter wordt.
‫Karakteraanwijzer genaamd laten we het gecontroleerd noemen.
‫Karakter.
‫Ik kan het niet gewoon karakter noemen, want dat is al een variabele op de luchtcontroller en plaats een puntkomma aan het
‫einde van de regel en we gaan controleren of dit null is of niet.
‫Dus control character is niet gelijk aan null pointer, dan zouden we in staat moeten zijn om het te vragen naar zijn status of het dood
‫is of niet.
‫Dus we zouden in staat moeten zijn om dat gecontroleerde karakter terug te geven.
‫Is dood.
‫Kortom, we sturen het verzoek door naar ons controlekarakter.
‫Als dat controlepersonage een schietpersonage is.
‫Merk echter op dat we hier geen retourverklaring hebben.
‫In het andere geval moeten we wel een retour hebben.
‫Er moet altijd een terugkeer zijn.
‫Als de retourwaarde niet ongeldig is.
‫We moeten dus een return-statement buiten het if-statement plaatsen om het geval op te vangen waarin we nog
‫niet binnen het if-statement zijn teruggekeerd.
‫En hier gaan we gewoon zeggen, is dit personage dood?
‫Nou ja, in wezen, als het niet zo waar is, is het in wezen dood.
‫Als we geen pion hebben, als we geen pion beheersen, dan is deze luchtcontroller in wezen zo goed
‫als dood voor ons.
‫En dat kan gebeuren, want onthoud dat de pion zich losmaakt van zijn controller wanneer hij sterft.
‫Dus we gaan terug naar de spelmodus en wat willen we hier doen?
‫Wat we in wezen willen doen, is een volledige lus over alle i.
‫De schutter, ik.
‫In de wereld.
‫En daarmee voor de lus.
‫Wat willen we doen?
‫We willen zien dat hij dood is.
‫In wezen en of in wezen is niet dood.
‫En als een van hen niet dood is, weten we meteen dat we niet alle lucht hoeven te controleren.
‫Als er maar één man in leven regeert, is het spel nog niet voorbij.
‫Dus we kunnen doen wat bekend staat als een vroege terugkeer, die je waarschijnlijk eerder
‫hebt gezien, die deze functie gewoon verlaat zonder meer van de code erin uit te voeren.
‫Dus alles na deze vroege terugkeer stopt met het uitvoeren van de volledige lus, stopt met het uitvoeren van iets
‫nadat het stopt met uitvoeren.
‫Maar dan kunnen we zeggen dat als we erin geslaagd zijn om deze volledige cirkel met succes te doorlopen zonder dat
‫het vroegtijdig terugkeert, wat betekent dat er geen levende bondgenoten in de wereld zijn, we door moeten gaan en het spel moeten beëindigen.
‫Simpel als dat.
‫Een deel van de puzzel waar we hier naar moeten kijken, zijn de eindspeloproepen.
‫Het spel is afgelopen op de spelercontroller.
‫Laten we eens kijken hoe de shooter player controller hier momenteel mee omgaat.
‫Als we naar zijn CP gaan, zien we momenteel dat het momenteel volledig negeert dat de winnaar van B momenteel
‫negeert of het de winnaar is of niet.
‫Dus wat we moeten doen is zeggen of B winnaar is.
‫Dan gaan we iets anders doen.
‫We gaan ons loss-scherm weergeven.
‫Dus snijd hier deze regels die verantwoordelijk zijn voor het weergeven van het verliesscherm.
‫Zet dat in de out-instructie en we zullen hoe dan ook in beide gevallen opnieuw opstarten.
‫Dus momenteel is de be winnaar.
‫Wat gaan we doen?
‫Nou, we gaan gewoon door en maken waarschijnlijk ook een windscherm, wat redelijk eenvoudig zal
‫zijn.
‫We gaan naar ons headerbestand voor de shoot om een controller te spelen.
‫We kunnen dupliceren, schermklasse verliezen en een schermklasse winnen.
‫En hier kunnen we ook voor gaan en dit aanvechten.
‫Een mini-uitdaging voor jou.
‫Misschien ga je gang en stel het zo in dat het een win-scherm kan doen.
‫Kay, welkom terug.
‫Dus hopelijk heb je dat een kans gegeven.
‫We gaan gewoon naar binnen en plaatsen de voorruit hier in plaats van alle verloren advertenties, in wezen al
‫het andere.
‫Zoals zo.
‫We gaan door en compileren dit, gaan dan naar de editor en vinden
‫onszelf de spelercontrollerklasse.
‫En we zouden nu moeten zien dat er een lege voorruitklasse is.
‫En wat we gaan doen is naar de gebruikersinterface gaan en ik ga het losse scherm dupliceren om de
‫voorruit te bellen.
‫En je zou de jouwe helemaal opnieuw kunnen maken als je dat zou willen.
‫Maar ik ga het gewoon op dezelfde manier gebruiken, behalve dat ik de kleur voor groen ga veranderen.
‫En zorg ervoor dat je wint in plaats van dat je verliest.
‫Omdat de herstartlogica in feite gewoon hetzelfde zal zijn.
‫Om de een of andere reden reset het mijn kleur dat ik gewoon het kleurenscherm opnieuw ga instellen.
‫Oké, dus dat is geweldig.
‫Maar we hebben nog steeds deze klomp pseudocode in de KML-spelmodus die niet is ingevuld.
‫En dat komt omdat het jouw uitdaging is om de winst te berekenen.
‫Vul de pseudocode in, gebruik het T actieve bereik van onder in die klasse om je te helpen.
‫Gebruik de nieuwe is die functie die we op de controller hebben gemaakt en test deze uit.
‫Kijk of je voorruit verschijnt als je alle lucht van de wereld doodt.
‫Dus laat het gewoon achter met de pseudocode op je scherm zodat je ernaar kunt kijken.
‫K Welkom terug.
‫Dus laten we beginnen met de for-lus.
‫Dus ik ga een voor wat doen we voor looping over?
‫Het is deze keer geen controller.
‫Het wordt de shooter-luchtcontroller.
‫Dus we moeten dat hash opnemen.
‫Het wordt de schutter.
‫Luchtcontroller Don H.
‫En dat betekent dat we over een Shooter II-controllerwinkel gaan lopen om de controller,
‫de korte broek, een beetje af te koelen, en dan gaan we een acteursbereik opnieuw doen dat een shooter-luchtcontroller.
‫We moeten deze twee typen op elkaar afstemmen en dan de wereld krijgen.
‫Dus we doen het op dit niveau.
‫En dan hebben we het lichaam van de volledige lus hier waar we gaan vragen of het niet dood is.
‫Dus zo niet, dan is Controller Arrow dood.
‫Eigenlijk zeggen dat we ervoor moeten zorgen dat we niet dood zijn.
‫En als het niet dood is, gaan we gewoon door en keren we terug naar deze vroege terugkeer, omdat we weten dat het
‫spel nog niet afgelopen kan zijn.
‫En anders, als we de hele lus hebben doorlopen zonder terug te keren, moeten we het spel beëindigen omdat
‫de speler moet hebben gewonnen, alle AI in het level moet hebben gedood.
‫Dus in dit geval zouden we een eindspel kunnen doen.
‫WAAR.
‫Omdat de speler er een heeft.
‫En dat zou alle spelercontrollers en luchtcontrollers in de buurt moeten informeren.
‫Stoer.
‫Laten we dat eerst eens doornemen en compileren.
‫Dan ga ik naar Unreal om een toneelstuk te spelen.
‫Om de een of andere reden denkt mijn redacteur dat ik in deze bewerking voor het bewerken van gespecificeerde kleuren zit, dus ik
‫ga het gewoon afsluiten en opnieuw starten.
‫Nu het gratis is opgestart, ga ik verder en druk ik op play en word ik vermoord.
‫Ten eerste, ja, ik verlies nog steeds.
‫Dat is geweldig.
‫Laten we eens kijken of ik deze man kan doden voordat hij mij vermoordt.
‫Laten we gaan.
‫Boem, boem, boem, boem, boem, boem, boem.
‫Ik verlies te snel.
‫Laten we het pistool weer gaan zoeken en instellen.
‫We hebben die schade van het pistool erg hoog.
‫Voor testdoeleinden ga ik de schade deze keer terugbrengen naar misschien 20.
‫Dus het is nog steeds snel, maar niet zo snel.
‫Ga spelen en sla deze man een paar keer.
‫En wat we daar zagen, was dat ik echt won omdat het level opnieuw begon.
‫Dus als ik hem weer ga vermoorden, zie je dat er niets gebeurt.
‫Het zegt in het berichtenlogboek dat het werd genoemd met een null-klasse.
‫En de reden daarvoor, als we overgaan op een BP shooter player-controller, nogmaals, je kunt zien dat we onze
‫voorruit niet hebben aangesloten.
‫Een ding dat ik ben vergeten te doen, zodat ik kan gaan compileren, opslaan en spelen.
‫En nu hopelijk, als ik deze man naar een nieuwe ondergang dood, win ik en ga ik over 5 seconden opnieuw beginnen.
‫En ik wil je laten zien dat hetzelfde waar is.
‫Als ik meer spelercontrollers in de wereld zet, moet ik ze allebei doden.
‫Dus laten we gaan en het schutterkarakter hierheen halen.
‫En dit wordt mijn tweede vijand om te doden.
‫Dus dood deze man.
‫Boom.
‫En het heeft niet gewonnen.
‫Dan loop ik naar de tweede man.
‫Boom.
‫En nu heb ik er een.
‫Omdat ik alle alfa heb gedood, en we hoefden geen variabelen te veranderen om dat te doen.
‫Omdat I for loop alle levenden elke keer vanaf het begin telt.
‫Dus momenteel leven we nu in een vrij stille wereld.
‫Dus in de volgende lezing wil ik een beetje gaan kijken naar hoe we wat audio kunnen maken.
‫Ik zie je daar.