Avendo impostato sia il lancio che l’attacco, potremmo tranquillamente fermarci qui e proseguire verso altri elementi del progetto, integrando magari un sistema di combattimento logico con le nostre animazioni. Eppure, lo vedremo presto, il nostro personaggio non avrà delle azioni perfette all’interno del gioco. Pur selezionando l’attacco durante una corsa, infatti, l’eroe non si fermerà e, anzi, continuerà a compiere l’azione senza fermarsi, portandosi avanti come un fantasma per quei 0.5 secondi di animazione. Per sistemare la situazione, fortunatamente, ci basteranno un paio di nodi aggiuntivi.
Fermiamo il personaggio durante l’azione
Per bloccare il movimento del personaggio durante le sue azioni, dovremo tornare sull’Event Graph del 2DSideScrollerCharacer. Per trovarla, ricordiamoci che avremo sempre a disposizione il Content Browser, visibile in basso dal progetto. Da lì, semplicemente, ci basterà entrare nella cartella del Character per aprire finalmente la griglia del nostro personaggio. Una volta che saremo entrati nell’Event Graph, dirigiamoci immediatamente nella casella dell’Handle Animation e, subito dopo, trasciniamo il nodo in uno spazio vuoto della griglia, collegandolo a uno Stop Movement Immediately (CharacterMovement).
Ovviamente, visto che comunque i movimenti tra un’azione e l’altra avranno lo stesso fine durante la nostra avventura nel gioco, dovremo assicurarci anche di bloccare i movimenti del lancio nello stato di riposo del nostro personaggio. Ripetiamo quanto fatto con il PaperFlipbookAttack, legando il nodo bianco del PaperFlipbookThrow a un nuovo Stop Character Movement Immediately (CharacterMovement). Una volta che avremo stabilito questo legame, ricordiamoci di cliccare su Compile e su Save per aggiornare il nostro progetto. Tuttavia, cosa fa il nostro eroe ogni volta che esegue un lancio? È giunto il momento di collegare la sua azione a un oggetto!
Definiamo l’azione del lancio
Torniamo quindi sul nostro Content Browser originale e, osservando la cartella iniziale del Content, clicchiamo con il tasto destro del mouse su uno spazio vuoto, selezionando una New Folder che andremo a rinominare come Item; questa cartella sarà difatti dedicata a tutti gli oggetti che andremo a creare. Entriamoci subito e, da lì, creiamo una seconda cartella, stavolta dedicata a un Kunai. Visto l’aspetto da ninja e gli asset che abbiamo a disposizione, dopotutto, perché non contestualizzare la sua azione del lancio con un bel kunai, utile per colpire l’avversario da lontano? Per cominciare a creare l’oggetto in questione, torniamo a cliccare con il tasto destro del mouse all’interno della nuova cartella e selezioniamo un nuovo Blueprint Class, specificando la sua classe da Actor e rinominandolo infine come Kunai.
Integriamo lo sprite dell’oggetto
A questo punto non ci resta che integrato l’immagine del nostro oggetto per dargli una forma concreta, trasformandolo direttamente in uno sprite da poter utilizzare all’interno del progetto; è anche ciò che abbiamo fatto con le animazioni del personaggio, dopotutto! Per farlo, dovremo tornare tra le cartelle del nostro PC personale e cercare quella dedicata al ninjaadventurenew, per poi entrare tra i png.
Una volta che saremo all’interno della cartella riusciremo presto a trovare il Kunai, eppure si verificherà subito una stramba condizione, che non ci consentirà di copiare il file all’interno del Content Browser. Il problema, come avevamo già avuto modo di vedere, si trova nel nome del file. Il progetto difatti, interfacciando un file del Kunai con una cartella denominata come Kunai, non avrebbe modo di effettuare una salda distinzione tra i due elementi. Per questo stesso motivo rinominiamo il file come Kunai_Item e trasciniamolo finalmente all’interno della cartella dedicata. Subito dopo, clicchiamo con il tasto destro sul file, muoviamo il cursore del mouse su Sprite Actions e clicchiamo infine su Create Sprite per creare lo stesso file, ora visibile come Kunai_Item_Sprite.
A questo punto possiamo entrare nell’Actor che andrà a formare il nostro kunai. Clicchiamo quindi due volte sullo stesso file, in questo momento rappresentato da un cerchio bianco, per aprire il suo Viewport. Da qui, il nostro compito sarà quello di importare lo sprite del kunai, che si potrà integrare grazie al cosiddetto Paper Sprite. Per inserirlo, ci basterà entrare nella casella dei Components, cliccando su Add Component e cercando il già citato Paper Sprite, che andremo per convenienza a rinominare come PaperSpriteKunai.
Colleghiamo l’Actor allo sprite del kunai
Clicchiamo subito sul PaperSpriteKunai nella lista dei Components e cominciamo a identificarlo all’interno del Viewport. Da lì, ci basterà una semplice mossa per integrare lo sprite del kunai all’interno del progetto. Semplicemente, spostiamoci sulla lista dei Details e troviamo il Source Sprite, che andrà collegato al nostro Kunai_Item_Sprite; aiutiamoci con la barra del Search, in modo tale da velocizzare la ricerca del file. A questo punto dovremo contestualizzare lo stesso elemento nel Viewport e legare lo stesso Actor all’azione del lancio; delle novità che andremo a esplorare nella prossima lezione.