‫Hé, welkom terug.
‫In deze video gaan we een afteltimer maken, zodat de speler weet hoeveel tijd hij
‫moet wachten voordat hij zijn tank kan gaan verplaatsen en dingen kan opblazen.
‫Dus we gaan de resterende tijd in de afteltimer laten zien totdat het spel begint.
‫Dus laten we naar de editor gaan en hiermee beginnen.
‫Nu ben ik hier in onze Widget Blueprint, BP Start Game Widget, en dit is de widget-editor zoals we hebben
‫gezien.
‫Maar het is je misschien opgevallen rechtsboven, er zijn hier twee tabbladen, een met de tekst ontwerper.
‫Dat is waar we ons nu in bevinden en een die grafiek zegt.
‫En als u op grafiek klikt, lijkt het meer op een blauwdrukgebeurtenisgrafiek met gebeurtenisknooppunten en een mijn
‫blauwdruktabblad hier met verschillende secties.
‫En dit is waar we blauwdruklogica kunnen doen.
‫Nu hebben we hier drie knooppunten.
‫We hebben een pre-constructie voor evenementen.
‫Dit is vergelijkbaar met een constructor in C++ en dan hebben we een gebeurtenisconstructie die vergelijkbaar is met het begin van het spel.
‫Dus dit is waar het meer gepast is om dingen aan het begin van het spel te doen,
‫omdat alle relevante klassen op dit punt zijn geconstrueerd en dan hebben we een gebeurtenisvinkje.
‫En net als de tick-functie in C++ hebben we hier toegang tot Delta-tijd.
‫Nu gaan we de eerste twee knooppunten niet gebruiken, dus ik ga deze markeren en
‫verwijderen en we gaan gebeurtenistechnologie gebruiken.
‫Ons doel voor deze video is om te laten zien hoeveel tijd er nog over is en we hebben nu een
‫afteltimer van drie seconden in C++.
‫We hebben een timerhandvat gemaakt en we hebben de wereldtimermanager gebruikt om een timer te starten.
‫Alles wat we hier in blauwdrukken doen, staat daar los van.
‫We creëren hier een heel ander logisch systeem, en het zal gewoon samenvallen met die timer die we
‫in C++ hebben ingesteld.
‫Dit is dus allemaal anders en onafhankelijk van de C++-kant.
‫Nu hier in de WB-widget voor het starten van het spel, kunnen we variabelen toevoegen, net zoals we hier variabelen in C++ kunnen
‫toevoegen.
‫Onder mijn blauwdruk kan ik klikken op toevoegen en variabele selecteren en nu heb ik een variabele met de naam new var
‫underscore nul.
‫En hier beneden in het detailvenster, dat verwarrend aan de linkerkant is, hebben we nu de
‫variabelenaam en het variabeletype.
‫Nu is het standaard gemarkeerd omdat het gewoon wordt verwacht dat je je variabelen gaat hernoemen zodra
‫je ze maakt.
‫We hebben deze standaardnaam dus niet nodig.
‫We gaan dit onze eigen naam noemen.
‫Ik ga het Countdown noemen.
‫En Countdown wordt een zwevende variabele Y omdat dit bijhoudt hoeveel tijd we
‫nog hebben.
‫Ik ga beginnen met 3 seconden en van elk frame ga ik de hoeveelheid tijd aftrekken die is
‫verstreken sinds het vorige frame.
‫Dus we krijgen een aftelling van drie naar beneden.
‫Nu ga ik op Compileren klikken.
‫Nu, zodra ik op compileren klik, kan ik dit een standaardwaarde geven door naar beneden te scrollen in de details.
‫Paneel, het is standaard ingesteld op nul.
‫Ik ga het standaard op drie zetten, omdat we een aftelling van drie seconden hebben.
‫De tijd is nu zoals het is, dit is gewoon een float genaamd Countdown met een waarde van drie.
‫We hebben het niet echt veranderd, maar elk frame van het spel wil ik graag aftrekken van Delta-tijd,
‫de hoeveelheid tijd die is verstreken sinds het vorige frame.
‫En op die manier zal Countdown constant de verlaging met Delta-tijd bijwerken, zodat we een lopende
‫tijdtelling hebben.
‫Nu, hier is hoe we dat kunnen doen.
‫Ik ga aftellen vanaf ons tabblad Mijn blauwdruk, klik en sleep het hier naar de gebeurtenisgrafiek en
‫laat los.
‫Nu, zodra ik loslaat, heb ik twee opties.
‫Download Countdown en stel het aftellen in.
‫Als ik op Get Countdown klik, heb ik nu de countdown-notitie en als ik klik en uit de uitvoer
‫sleep, krijg ik toegang tot de waarde van Countdown.
‫Nu kan ik ook op Countdown klikken, naar binnen slepen en op Set Countdown klikken en we hebben een ingesteld knooppunt.
‫We hebben deze beide al eerder gezien.
‫In eerdere video's kunnen we met de invoerpin voor de setter een float-waarde aansluiten en vervolgens wordt het aftellen
‫op die waarde ingesteld.
‫Dus hoe trekken we Delta-tijd eigenlijk af van Countdown en stellen we dat in op de countdown-waarde?
‫Welnu, we kunnen hier ons aftelknooppunt nemen en ik kan erop klikken en eraf slepen en het minteken op
‫mijn toetsenbord typen en het knooppunt Aftrekken kiezen.
‫Als ik dat selecteer, heb ik nu een float minus float of een aftrekknooppunt.
‫Je zult zien dat er Target is Kismet Math Library.
‫Dat vertelt je dat Kismet Math Library dit knooppunt ondersteunt.
‫Alle knooppunten hebben C++-code in hun kern.
‫Dus wat dit knooppunt doet, is dat het twee ingangen nodig heeft.
‫Er is een vlotterinvoer nodig.
‫En er is een tweede float-invoer voor nodig.
‫Het verandert niets aan de variabelen die we doorgeven.
‫Het gaat gewoon een berekening uitvoeren en de waarde retourneren die het resultaat is van de aftrekking.
‫Nu wil ik het aftellen en de Delta-tijd ervan aftrekken, zodat ik de uitvoerpin die in Delta-tijd wordt
‫genoemd, kan nemen van het gebeurtenisvinkknooppunt en dat rechtstreeks kan aansluiten op de tweede invoer in mijn
‫aftrekknooppunt.
‫Dus wat ik doe is dat ik de aftelling minus de delta-tijd doe en dan krijg ik het resultaat.
‫Nu is het aftellen aanvankelijk 3 seconden en de deltatijd is een zeer kleine waarde.
‫Het is de hoeveelheid tijd in seconden die is verstreken sinds het laatste frame.
‫Dit zou dus een klein bedrag zijn.
‫Dus de eerste keer dat dit wordt uitgevoerd, is het resultaat drie minus een klein bedrag.
‫En wat ik zou willen doen, is de waarde van het aftellen gelijk stellen aan dat resultaat, elk afzonderlijk frame.
‫Dus elke frame countdown wordt beetje bij beetje afgetrokken.
‫En op die manier blijft het aftellen van 3 seconden naar beneden gaan.
‫Dus ik ga het geretourneerde resultaat van dit aftrekknooppunt nemen en het aansluiten op de invoer
‫voor het ingestelde aftelknooppunt.
‫Dit gaat niets doen als ik de uitvoeringsdraad van de gebeurtenis niet verbind, de uitvoeringspin aan de
‫invoerpin vink voor het aftellen van de set.
‫Dus wat dit nu doet, is dat elk frame de Delta-tijd aftrekt van Countdown, dat
‫resultaat neemt en het aftellen instelt op die nieuwe waarde.
‫Nu kunnen we zien hoe dit zich gedraagt met een print string node.
‫Dus ik ga de printstring van het setter-type wegslepen en een printstring-knooppunt krijgen.
‫En dan zou ik de waarde van het aftellen willen afdrukken, zodat ik de retourwaarde van de setter kan nemen, die
‫ons de nieuwe waarde van het aftellen van elk frame zal geven en deze in het in-tekenreeksknooppunt zal pluggen.
‫En merk op dat ik een convert float naar string zie en als ik nu loslaat, krijg ik een conversieknooppunt dat mijn float
‫zal nemen, het naar een string zal converteren, en nu kunnen we dat naar het scherm afdrukken.
‫Laten we nu eens kijken wat er gebeurt als ik op play druk.
‫Moet je dat zien.
‫We zien die telling als gedocumenteerd voor elk frame en we spammen het scherm met de waarde van aftellen
‫en het wordt steeds negatiever.
‫Dit is dus de eerste stap om onze afteltimer te laten werken.
‫Ik ga dit nu afsluiten.
‫We hebben gezien dat we een float-waarde afdrukken die een aantal decimalen heeft.
‫En als we de waarde eenmaal op het scherm hebben afgedrukt, willen we niet echt decimalen, we willen een geheel getal.
‫Dus ik zou graag zien hoeveel seconden er nog over zijn zonder die laatste cijfers rechts van de
‫komma.
‫Dus wat ik nodig heb is een geheel getal.
‫Wel, wat ik kan doen, is dat ik dit conversieknooppunt ga verwijderen en het
‫resultaat van de countdown-setter ga nemen en ik ga C E I'll seal typen, wat een afkorting is voor verzegelen.
‫De verzegelingsbewerking neemt een float-waarde en rondt deze af op het dichtstbijzijnde gehele getal.
‫Dus als we op drie zitten, nou, het is niet nodig om af te ronden.
‫Het gaat een geheel getal retourneren met een waarde drie.
‫Maar als we bij 2 zijn. 9, bijvoorbeeld, dan rondt het zegelknooppunt het af naar drie.
‫En als die waarde afneemt, blijft hij drie teruggeven totdat we bij twee zijn.
‫We krijgen dus altijd een geheel getal.
‫Nu kan ik dit in de print string pluggen en je zult zien dat er Convert integer to string staat.
‫Dus nu neemt het zegelknooppunt een float, rondt het af naar het dichtstbijzijnde gehele getal en retourneert dat gehele
‫getal.
‫Dus als ik nu op play druk, zullen we zien dat we 3 tegen 1 en nul krijgen.
‫En natuurlijk blijft het dalen omdat we dit nooit vertellen om daadwerkelijk te stoppen.
‫Maar dit is een goed begin, want nu hebben we toegang tot het aantal resterende seconden en
‫kunnen we als reactie iets op het scherm afdrukken.
‫Dus hoe gaan we het juiste bericht op het scherm afdrukken?
‫Wat ik zou willen doen, is dat wanneer we nog 3 seconden over hebben, ik wil dat de widget zegt: Maak je klaar.
‫Als we nog 2 seconden over hebben, wil ik dat je nummer twee laat zien.
‫Als we nog een seconde over hebben, wil ik de nummer één laten zien.
‫En als we 0 seconden over hebben, wil ik dat de tekst Go zegt.
‫Welnu, dit kunnen we doen met een switch node switch nodes kunnen een aantal verschillende types aanzetten, waaronder
‫INT.
‫De manier waarop een schakelaar op het int-knooppunt werkt, is dat het een aantal gevallen heeft voor een aantal waarden.
‫En op basis van de waarde die we doorgeven aan dit schakelknooppunt, zal het een van een aantal dingen doen.
‫Als we bijvoorbeeld de integerwaarde drie doorgeven, krijgen we het geval van drie, wat ertoe leidt
‫dat ding drie wordt uitgevoerd.
‫Dus het switch-on-eindknooppunt heeft meerdere uitvoeringsregels en het zal er slechts één uitvoeren op basis van.
‫De invoer.
‫Nu kunnen we een schakelaar op het int-knooppunt gebruiken en een geheel getal doorgeven, bijvoorbeeld het resultaat van ons zegelknooppunt.
‫Dus ik ga de printstring verwijderen en ik ga van het aftelknooppunt slepen en typ
‫switch on INT en selecteer switch on int.
‫Merk nu op dat er een invoer van het type integer nodig is.
‫Ik ga de retourwaarde van het zegelknooppunt doorgeven en merk ook op dat we een optie voor het toevoegen van een pin hebben.
‫Als we daarop klikken, ziet u dat we naast de uitvoer met nul een standaardpin krijgen.
‫Wat dit zegt, is dat als we wat blauwdruklogica aansluiten op de nuluitvoeringspen, die logica zal
‫worden uitgevoerd.
‫Als de ingevoerde waarde nul is, en als het niet goed is, dan zal het standaard deze uitvoeringspin
‫gebruiken.
‫Nu kunnen we opnieuw op pin toevoegen klikken en nu hebben we nul en één.
‫We kunnen dus twee uitvoeringslijnen hebben, één voor nul en één voor één.
‫En als de invoer niet nul of één is, wordt alles wat is aangesloten op de standaard uitgevoerd.
‫Ik ga nog twee keer op plus klikken.
‫We hebben dus gevallen nul tot en met drie en een standaardgeval.
‫Dus nu is het aan ons om hiervan af te slepen en wat blauwdruklogica toe te voegen die we willen laten uitvoeren op basis
‫van de waarde die wordt doorgegeven in die we krijgen van dit SEAL-knooppunt.
‫En dat is wat ik wil dat je doet voor je uitdaging.
‫Ik zou graag willen dat je voor elk geval verschillende berichten afdrukt met behulp van een printstring-knooppunt voor de waarde drie die je
‫kunt afdrukken, maak je klaar met behulp van een printstring-knooppunt.
‫Voor het geval twee, kunt u eenvoudig de waarde twee afdrukken voor het ene geval, u kunt er
‫een afdrukken en voor het nulgeval kunt u nu afdrukken voor het standaard geval, gewoon het startspel afdrukken met onze print string
‫node.
‫Pauzeer de video en voeg nu een hele reeks printstring-knooppunten toe aan de gebeurtenisgrafiek.
‫Oké.
‫Dus ik wil graag doorgaan en een print string-knooppunt gebruiken en ik ga hier onderaan beginnen
‫voor het standaardgeval en ik ga print string typen.
‫En de string die ik wil printen is start game.
‫Hier is een snelkoppeling.
‫Als je het niet wist met het printstring-knooppunt geselecteerd, kan ik mijn muis ergens anders in
‫de gebeurtenisgrafiek plaatsen en op control dx drukken en dat zal het knooppunt kopiëren dat ik had geselecteerd.
‫Ik ga de drie koffers aansluiten op deze print string node en ik typ maak je klaar.
‫Dus als de invoer naar de schakelaar drie is, zullen we zien.
‫Maak je klaar, afgedrukt op het scherm.
‫Nu ga ik DX opnieuw besturen en dit aansluiten op de twee behuizing en voor twee ga ik er gewoon twee
‫afdrukken, nu ga ik de print string node kopiëren en voor één ga ik de waarde één.
‫En tot slot, een laatste print string-knooppunt hier zal worden aangesloten op het nulgeval en dit
‫gaat zeggen: ga.
‫Oké.
‫Dus laten we doorgaan en dit compileren en ik ga op play drukken en nu zie ik: maak je klaar, twee,
‫één en gaan.
‫En dan zien we natuurlijk het startspel als we geen tijd meer hebben.
‫We weten dus dat de waarde daalt en steeds negatiever wordt, maar dat is het standaardgeval voor onze
‫overstap en dan weten we dat we het spel echt kunnen starten.
‫Dit is dus de eerste stap om onze afteltimer in onze widget te tonen.
‫We veranderen de tekst met de tekst 'Maak je klaar' nog niet helemaal, maar dat gaan we binnenkort doen.
‫Dus in deze video hebben we Countdown Logic gemaakt en toegevoegd aan onze widgetblauwdruk.
‫We gebruikten print string om onze countdown-waarden weer te geven en een ander bericht af te drukken.
‫Gebaseerd op onze countdown-waarden.
‫We moeten de tekst in de widget nog instellen, en dat gaan we in de volgende video doen.
‫Ik zie je snel.