‫Dus we gaan een vuurfunctie maken en we gaan deze functie associëren met onze
‫linkermuisknop.
‫En hier kun je zien dat ik foutopsporingsbollen teken aan de punt van onze torenloop om te
‫bewijzen dat deze actie-mapping werkt.
‫Telkens als ik met de linkermuisknop klik, gebeurt er iets.
‫Hé, welkom terug.
‫In deze video gaan we het hebben over het maken van een vuurfunctie of een functie die we kunnen
‫gebruiken wanneer we onze projectielen willen spawnen.
‫Dus we gaan een vuurfunctie maken en deze koppelen aan een actietoewijzing.
‫Nu hebben we astoewijzingen gebruikt.
‫Een action mapping is vergelijkbaar.
‫Laten we het er nu over hebben.
‫Hier is een gedeelte van een schermafbeelding van de vuuractietoewijzing die we in onze projectinstellingen hebben.
‫Je zult zien dat we de linkermuisknop hebben toegewezen aan de vuuractietoewijzing.
‫Nu lijkt een actietoewijzing heel erg op een astoewijzing.
‫U kunt er een toets of een knop aan toewijzen.
‫En net als een axis mapping, vereist het een functie die kan worden gebonden aan de action mapping.
‫Nu vuren axis mappings elk frame van het spel af.
‫Ze zijn als de tic-functie en de zwevende waarde die wordt doorgegeven, verandert afhankelijk van de knoppen die
‫worden ingedrukt.
‫Action mappings zijn iets anders.
‫Een callback-functie die is gebonden aan een actietoewijzing, heeft geen invoerparameters nodig en het enige dat er gebeurt, is dat wanneer u op
‫de knop drukt, de functie wordt aangeroepen.
‫Wat er binnen de functie gebeurt, is aan ons als ontwikkelaar.
‫Nu zijn actietoewijzingen eenmalig.
‫Ze gebeuren niet elk frame.
‫Ze gebeuren maar één keer als je op de knop drukt.
‫Dus als u de knop loslaat en nogmaals indrukt, wordt de functie opnieuw aangeroepen.
‫Toen we nu functies aan de astoewijzingen bonden, gebruikten we de bindas voor actietoewijzingen. We gebruiken een
‫functie genaamd bindactie en er zijn invoer nodig die vergelijkbaar is met de bindas.
‫Het neemt de naam van de actietoewijzing als een letterlijke tekenreeks.
‫Het vereist ook een verwijzing naar de klas.
‫We binden de functie waarvoor we dit kunnen gebruiken, en er is natuurlijk een callback-functie voor nodig.
‫Nu is er een extra parameter die de bind-as niet nodig heeft als een enum-constante die aangeeft of we willen
‫dat deze functie wordt aangeroepen wanneer we op de knop drukken of wanneer we de knop
‫loslaten.
‫Er zijn dus twee opties voor deze invoerparameter, de enum-constante, i. e. ingedrukt en de enum constante,
‫i. e. uitgegeven.
‫Dit betekent dat we bindactie doorgeven in i kunnen noemen. e. ingedrukt als we een callback-functie willen binden voor wanneer we
‫op de knop drukken en in plaats daarvan als we i. e. vrijgegeven, dan zou onze callback-functie
‫worden aangeroepen wanneer de knop werd losgelaten voor onze vuurfunctie.
‫We maken ons zorgen wanneer we op de knop drukken.
‫Laten we dus een vuurfunctie maken en deze koppelen aan de vuuractietoewijzing.
‫Nu ben ik hier in de basisspawn en de reden dat ik hier in de basisvijver ben, is omdat deze vuurfunctie iets
‫is dat we kunnen gebruiken in de tankklasse en in de torenklasse.
‫Dus als we het hier in de basisvijver plaatsen, dan zullen zowel Tank als toren deze functie erven.
‫En aangezien zowel de tank als de toren projectielen gaan afvuren, kunnen ze gewoon de functie
‫erven en gebruiken.
‫Omdat ik nu toegang wil tot de functie in beide onderliggende klassen, kan ik deze functie hier in de
‫beschermde sectie plaatsen, net zoals het torentje draaien.
‫Dus onder draaitoren ga ik een ongeldige functie maken met de naam vuur die geen invoer nodig heeft
‫en we kunnen doorgaan en de vuurfunctie definiëren op basis van CPP.
‫Dus hier is gebaseerd op CPP en net onder de draaitoren, ik ga de vuurfunctie plaatsen en
‫we moeten deze functienaam volledig kwalificeren en er een functielichaam aan geven.
‫Dus nu hebben we een vuurfunctie.
‫De volgende stap is nu om dit te binden aan een action mapping.
‫Nu willen we deze functie alleen binden in de tankklasse omdat de tank de enige klasse is
‫die gebruikersinvoer zal ontvangen.
‫We zullen later de vuurfunctie in de torenklasse aanroepen, maar dat zal het resultaat zijn van
‫code die we maken en niet als resultaat van gebruikersinvoer.
‫Dus we zijn hier in Tank CP en we gaan dit binden en de spelerinvoercomponent instellen, net zoals
‫we de bindas gebruikten.
‫We gaan dus de spelerinvoercomponent gebruiken.
‫Dus de spelerinvoercomponent en de functie wordt een bindactie.
‫Nu wordt de eerste invoer de letterlijke tekenreeks, die we zoals gewoonlijk in een tekstmacro zullen
‫inpakken.
‫En deze actiemapping wordt vuur genoemd.
‫Nu wordt de volgende parameter die enum-constante die bepaalt of we willen dat deze functie wordt aangeroepen
‫wanneer we op de knop drukken of wanneer we de knop loslaten.
‫En we gaan gebruiken, ik onderstreep ingedrukt.
‫Omdat we willen dat onze functie wordt aangeroepen als we op de knop drukken.
‫Nu, het volgende is het gebruikersklasse-object dat dit gaat worden.
‫En tot slot hebben we onze terugbelfunctie zodat we kunnen spreken van een tankbrand.
‫En nu is onze vuurfunctie gebonden aan de vuuractie-mapping.
‫We weten dus dat onze vuurfunctie gebonden is aan het in kaart brengen van vuuracties, maar we willen graag wat visuele bevestiging
‫en dat is wat je uitdaging zal zijn.
‫Dus in de vuurfunctie wil ik dat je een debugbol tekent.
‫We hebben al gezien hoe u dit moet doen, dus ga uw gang en vul de parameters in met waarden waarvan u denkt
‫dat ze geschikt zijn.
‫Gebruik de locatie van het spawnpunt van het projectiel.
‫Nu is het spawnpunt van het projectiel een gebruiksscènecomponent en je hebt gezien dat componenten een functie hebben
‫met de naam componentlocatie ophalen.
‫Dit levert een F-vector op.
‫Dit is wat je kunt gebruiken om de locatie van het projectiel-spawnpunt te krijgen.
‫Als je nu teken debug bol aanroept, gebruik dan een duur van ongeveer 3 seconden zodat we die bol een tijdje
‫kunnen zien voordat hij verdwijnt.
‫Pauzeer de video en doe dit nu.
‫Oké.
‫Dus ik ben hier terug in Bass Pond en hier in Bass Pond.
‫CP Ik ga debug-helpers tekenen.
‫Dus we hebben toegang om een debug-bol te tekenen.
‫Dus ik ga zeggen, teken debug-helpers.
‫En nu hier beneden in de vuurfunctie, kunnen we de debug-bol tekenen.
‫Het eerste dat ik echter wil doen, is de locatie van het spawn-punt van het projectiel krijgen.
‫Nu kan ik hiervoor een lokale f-vector maken en ik kan deze projectiel-spawn-puntlocatie noemen en ik kan
‫het initialiseren met behulp van het projectiel-spawn-punt.
‫En bellen om de locatie van de component te krijgen.
‫Dus nu heb ik de locatie van het spawn-punt van het projectiel en dit is wat ik kan gebruiken bij het aanroepen van draw
‫debug sphere.
‫Dus ik ga draw debug sphere noemen.
‫En voor de eerste input hebben we de wereld nodig en we weten dat we de wereld kunnen krijgen met get world next.
‫We hebben het middelpunt van de bol nodig dat onze locatie voor het spawnen van het projectiel wordt.
‫Dus dat zal ik doorgeven als de tweede parameter.
‫En vervolgens hebben we de straal van de bol nodig.
‫Nu krijg ik een kleine bol.
‫Ik geef het een straal van zeg 25 F voor het aantal segmenten dat ik gewoon 12 ga gebruiken en voor de
‫kleur kan ik F-kleur gebruiken.
‫Lees nu vier trekken aanhoudende lijnen.
‫We laten onze regels 3 seconden rondhangen, zodat we dit onwaar kunnen maken, omdat we niet willen dat ze
‫voor altijd blijven bestaan.
‫We gaan deze debug-bol een levensduur van drie F geven. Dus laten we doorgaan en dit nu compileren en ik ga
‫op play drukken en klikken en nu kunnen we onze debug-bol zien en natuurlijk verdwijnt deze na
‫3 seconden.
‫Dit is een goede bevestiging dat onze actie-mapping werkt en het geeft ons ook verificatie van
‫de locatie van het spawn-punt van het projectiel.
‫Dus zodra we daadwerkelijk projectielen gaan spawnen, weten we dat ze op de juiste locatie zullen
‫spawnen, zoals aangegeven door de debug-bol.
‫Dit is dus geweldig.
‫Dus in deze video hebben we een vuurfunctie gemaakt en deze gekoppeld aan de vuuractie-mapping.
‫En om te bewijzen dat het werkte, hebben we een debug-bol getekend bij het spawnpunt van het projectiel wanneer
‫we op de linkermuisknop klikken, zodat we een vuurfunctie hebben, we zijn bijna klaar om projectielen te spawnen.
‫En we hebben deze functie ook in de basis pong-klasse geplaatst.
‫Zo kan onze toren er ook gebruik van maken.
‫Dus in de volgende video gaan we bespreken hoe onze toren deze functie gaat gebruiken.
‫Ik zie je snel.