top of page
Immagine del redattoreRobNico

TASTI-TILES-NEMICI

Aggiornamento: 25 gen 2021

Seconda parte del tutorial dove imparerai le basi per utilizzare al meglio Construct 3, in questa seconda parte vedrai come inserire tasti personali per il movimento del Player, arredi tiles e nemici.



Nella prima parte, per il movimento del Player abbiamo utilizzato i tasti di controllo default definiti dal programma, ora vedremo come inserire tasti scelti da noi che sono per esempio A o freccia sx per il movimento a sinistra, D o freccia dx per il movimento a destra ed infine tasto W o freccia su per il salto.

Come prima cosa clicca sul PlayerBox nella finestra Progetto, a sinistra nella finestra Proprietà vai su Comportamenti Piattaforme e togli la spunta nel controlli predefiniti.
















Torna al Foglio evento. Aggiungi un nuovo evento alla condizione se " Tasto freccia sinistra premuto " e l'azione " Imposta Player riflesso ".

Clicca con il tasto sinistro sull'evento (assicurati di selezionare a sinistra dell'icona nella condizione) e seleziona con il tasto destro la voce Crea blocco OR, quindi doppio click e nella finestra che si aprirà seleziona la Tastiera►successivo► tasto è premuto►successivo ► clicca per scegliere ► tasto A ► fatto.

Per finire Aggiungi azione PlayerBox ► successivo ► Simula controllo in Piattaforme ► successivo ► sinistra.

Ripeti il tutto anche per il movimento a destra e per il salto.

Dovresti finire con questo:








Mettiamo ordine, fuori dagli Eventi tasto sinistro e clicca su Aggiungi Gruppo e come nome scrivi Movimento Player, ora seleziona tutti gli eventi posizionati sulla sinistra, tasto ctrl premuto e clicca con il tasto sinistro su tutti gli eventi, una volta selezionati tutti trascinali dentro il gruppo Movimento Player. (Aggiungi evento a "Movimento Player")
























TILEMAP

Modifica dei poligoni di collisione delle tessere

Se muovi il Player nella piattaforma, può capitare che rimanga come sospeso in aria, questo capita se hai utilizzato tessere con forme diversa dalla classica tessera quadrata.





















Ogni tessera può avere un poligono di collisione individuale. Per modificare il poligono di collisione di una tessera, fai doppio clic sulla tessera nella barra Tilemap. L' editor delle animazioni si aprirà per modificare quel riquadro. È possibile utilizzare lo strumento poligono di collisione per modificare il poligono di collisione del riquadro.

Fai clic sul quadratino rosso, assume il colore giallo, trascina il poligono di collisione sul perimetro della tessera.















Mentre lo strumento è attivo, puoi anche fare clic con il pulsante destro del mouse e scegliere Attiva / disattiva poligono di collisione per disabilitare completamente le collisioni per quel riquadro, ad esempio se è solo a scopo decorativo.
È inoltre possibile utilizzare le funzionalità di modifica delle immagini dell'Editor di animazioni per modificare l'immagine del riquadro.
Quando si passa il mouse su una tessera nella barra Tilemap, il suo poligono di collisione viene mostrato come un contorno, se ne ha uno. Questo ti aiuta a rivedere rapidamente il poligono di collisione impostato per ogni tessera.	

Per modificare le collisioni di forme rotondeggianti puoi aggiungere più punti semplicemente con tasto destro sul quadratino rosso

► Aggiungi punto.


AGGIUNGERE TILES (grass, cactus, bush, plant ecc...)

Si spera che tu abbia familiarità con il processo di aggiunta di sprite. Per brevità, quindi, non ripeteremo tutti i passi.

  • Inserisci un nuovo oggetto Sprite nel layout.

  • Carica un immagine dalla cartella Assets_Platformer\PNG\Tiles\grass

  • Imposta l'origine alla base dell'immagine ► Fondo. (Possiamo assegnarlo rapidamente premendo 2 (se il bloc num è attivo))

  • Ridimensiona se occorre lo sprite a 60x60 (in rapporto alla dimensione dello sprite con il Player)

  • Chiudi l'editor delle animazioni e rinomina l'oggetto in "grass".

  • Posizionalo su una piastrella.

Con tasto CTRL + trascinamento copia lo sprite e posizionalo lungo la piattaforma dove desideri, ripeti i passaggi con gli altri oggetti di arredo.


!  Nota che se il Player nel movimento si posiziona dietro alcuni oggetti, per riportarlo in cima clicca su Player ► tasto destro ►Ordine Z ►Invia in cima al layer.

AGGIUNGERE UN NEMICO

Anche per i nemici si spera che tu abbia familiarità con il processo di aggiunta di sprite e animazioni. Per brevità, quindi, non ripeteremo tutti i passi.

Come prima cosa crea un nuovo gruppo Nemici. (tasto destro > aggiungi Gruppo)

Aggiungiamo quindi un nuovo sprite per un nemico.

  • Aggiungi un nuovo oggetto Sprite nel layout.

  • Aggiungi fotogrammi dai file Assets_Platformer\PNG\Enemies\snail e snail_move

  • Imposta l'animazione in loop.

  • Imposta l'origine alla base dell'immagine nemica e applicala all'intera animazione.

  • Imposta dimensione immagine a 60 x 60 (applica a tutta l'animazione)

  • Chiudi l'editor delle animazioni e rinomina l'oggetto in "Snail".

  • Posizionalo su una piastrella a terra come mostrato.


Ora vogliamo creare la seguente logica:

  • Se il Player, correndo, colpisce la lumaca da un fianco, lampeggia e viene ferito.

  • Se il Player salta sulla cima della lumaca, la lumaca muore.

Per far lampeggiare il Player selezionate ed aggiungete il Comportamento Flash. Ricordatevi di selezionare il Player, non l'oggetto PlayerBox (infatti è il giocatore che è visibile, ed è lui che vogliamo che lampeggi). Tra un attimo utilizzeremo l'azione 'Flash' da questo behavior.


Passa alla visualizzazione del foglio eventi e aggiungi un nuovo evento :

PlayerBox ► Alla collisione con un altro oggetto ► Snail


Questo evento si verifica quando entriamo in collisione con il nemico da qualsiasi angolazione. Possiamo quindi utilizzare eventi secondari per verificare se il giocatore sta saltando sopra o correndo di lato. Per prima cosa testiamo se il giocatore è sopra.


Aggiungi un sottoevento all'evento di collisione:

PlayerBox ► Sta cadendo


! Puoi creare eventi secondari facendo clic con il pulsante destro del mouse sull'evento che desideri al livello superiore e selezionando Aggiungi►Aggiungi sottoevento nel menu di scelta rapida. Si noti che è necessario fare clic con il pulsante destro del mouse sul margine a sinistra del blocco di eventi e non sulla condizione già all'interno del blocco di eventi. In alternativa è possibile premere S o B quando è selezionato il livello superiore. S aprirà la finestra di dialogo Aggiungi condizione e ti consentirà di selezionare direttamente la condizione che desideri aggiungere. B creerà un nuovo sottoevento vuoto a cui puoi aggiungere condizioni / azioni.

Dovremmo anche testare che il Player sia effettivamente sopra il nemico. Questo ci aiuta nell'evitare che la lumaca venga uccisa se cadiamo oltre di lei da un dislivello. Click con il destro sulla condizione 'Sta cadendo' e selezionate 'Aggiungi un altra condizione'. Ricorda, tutte le condizioni devono essere soddisfatte per scatenare l'evento.

Aggiungete la condizione:

PlayerBox ► Confronta Y ► Meno di, Snail.Y


L'asse Y aumenta dall'alto verso il basso, quindi se la coordinata Y del Player è più bassa di quella della lumaca, vuol dire che ci è sopra.

In questo evento, aggiungete l'azione:

Snail ► Distruggi


Possiamo anche fare in modo che il giocatore rimbalzi su di essa, aggiungendo un'altra azione:

PlayerBox ► Imposta vettore Y ► -700



Imposta vettore Y fondamentalmente imposta solo la velocità verticale del movimento della piattaforma; impostandolo su un valore negativo lo si imposta verso l'alto (di nuovo, l'asse Y aumenta verso il basso), e 550 è leggermente inferiore alla forza di salto predefinita di 650. Quindi questo farà rimbalzare il giocatore come se avesse fatto un salto debole.


Una volta terminato, l'evento dovrebbe assomigliare a questo:






Non abbiamo ancora finito: fai clic con il pulsante destro del mouse sul margine dell'evento "Sta cadendo" (lo spazio appena a sinistra dell'icona del PlayerBox) e seleziona Aggiungi ►Altrimenti . " Else " è una condizione speciale che viene eseguita se l'evento precedente non è stato eseguito.










Quindi questo evento si svolgerà se ci scontrassimo con il nemico ma non ci stavamo saltando sopra - ci siamo imbattuti di lato, in questo caso vogliamo che il giocatore venga "ferito".

Aggiungi l'azione Player ► Flash (lascia i valori predefiniti e fai clic su Fine)


! Ricorda che il comportamento di Flash è nell'oggetto Player, non nel 
PlayerBox.
È possibile aggiungere un evento Else a un evento già selezionato e premere X


Ora dovresti avere questo:







Perfetto, per adesso il Player non muore mai, semplicemente lampeggia. Abbiamo sistemato l'identificazione del momento in cui impostare se il giocatore e' saltato sopra il nemico o l'ha colpito dal lato.

Per finire possiamo inserire un effetto sprite 'particella' sullo Snail quando viene distrutto, usando l'azione 'Genera altro oggetto 'Spawn object' di Snail) ecc...

Aggiungiamo quindi uno sprite Particelle:

  • Aggiungi un nuovo oggetto Particelle nel layout.














  • Aggiungi dal file \Assets_Platformer\PNG\Particles\fireball

  • imposta l'animazione in loop.

  • Chiudi l'editor delle animazioni e rinomina l'oggetto in "Particella_snail".

  • Posizionalo all'esterno del layout.

















Ora occorre impostare alcuni parametri nella finestra Proprietà.



  • Velocità Il numero di particelle create al secondo

  • Cono dello spray Il numero di gradi attraverso i quali le particelle vengono sparate

  • One-shot creerà una singola esplosione di particelle




  • La velocità iniziale a cui ogni particella viene lanciata, in pixel al secondo.

  • La dimensione iniziale di ogni particella, in pixel

  • L'opacità iniziale di ogni particella, da 0 (trasparente) a 100 (opaco).

  • La velocità di crescita iniziale per ciascuna particella, in pixel al secondo

  • L'offset X iniziale alla posizione della particella

  • L'offset Y iniziale alla posizione della particella

  • Una regolazione casuale della velocità iniziale di ciascuna particella durante la creazione.

  • Una regolazione casuale delle dimensioni di ciascuna particella durante la creazione.

  • Un aggiustamento casuale al tasso di crescita di ciascuna particella durante la creazione.


  • Variazione della velocità delle particelle nel tempo, in pixel al secondo al secondo.

  • L'accelerazione verso il basso causata dalla gravità, in pixel al secondo al secondo.

  • Una modifica casuale all'angolo di ciascuna particella da applicare durante la sua vita.

  • Una modifica casuale alla velocità di ciascuna particella da applicare durante la sua vita.

  • Una modifica casuale dell'opacità di ciascuna particella da applicare durante la sua durata.

  • Dissolvi a invisible farà sbiadire l'opacità di ogni particella a zero nel Timeout .

  • Il tempo in secondi che le particelle durano prima di essere distrutte, a seconda della modalità Distruggi


Passa alla visualizzazione del foglio eventi e aggiungi un nuovo evento nella posizione indicata sotto:









Aggiungi azione Snail ► successivo ►Genera un altro oggetto ►clicca per scegliere > Particella_snail ► Fatto

Ora dovresti avere questo:










Esegui il progetto, puoi vedere come l'oggetto Particelle può creare rapidamente effetti visivi creando e spostando molte piccole immagini in modo indipendente. È un oggetto versatile capace di molti diversi tipi di effetti visivi. Prova a modificare i parametri per vedere come si modifica il comportamento.


SPOSTARE IL NEMICO

Il problema principale nel muovere il nemico è come individuare quando ha raggiunto il limite di una piattaforma. La maniera più semplice per farlo è con gli indicatori invisibili 'edge'. Sono solo sprites invisibili che fanno invertire la direzione della lumaca quando li tocca.


Possiamo usare nuovamente il behavior Platform per la lumaca. Questo ci è utile perchè:

  • la fa muovere a destra e sinistra

  • la fa andare su e giù per le pendenze

  • la fa cadere giù dalle piattaforme


! se volete realizzare un nemico che salta, potete fare in modo che anche il nemico salti automaticamente nell'azione 'simula controllo'.

Aggiungi il comportamento Piattaforme allo sprite Snail. Poiché non stiamo usando animazioni complicate su questo oggetto, possiamo usare il comportamento della piattaforma direttamente sull'oggetto senza un oggetto "scatola BOX" invisibile.

Nota se crei un gioco di piattaforma diverso con nemici con animazioni complicate, dovresti usare la stessa tecnica di scatola (BOX) che abbiamo usato sul Player.


Non vogliamo che il giocatore controlli lo Snail, vogliamo controllarlo automaticamente. Possiamo farlo deselezionando in Piattaforme la casella Controlli predefiniti, quindi usando l'azione Simula controllo. Dato che le lumache sono molto lente, settiamo la Velocità massima a 50 e le sue Acceleration e Deceleration to 100!



Abbiamo bisogno anche dei nostri segnalini 'Bordo'. Aggiungete un nuovo oggetto Sprite e riempilo con un colore a tinta unita nell'editor delle animazioni. Chiamatelo Marcatore. Dimensionate l'oggetto a 30 x 30 e impostate l'origine in Fondo (Possiamo assegnarlo rapidamente premendo 2 sul tastierino numerico (se il bloc num è attivo) per finire impostare Inizialmente visibile a Invisibile, in modo che non lo vediamo.

Posizionane uno a ciascuna estremità della piattaforma nemica in questo modo: (non dimenticare che puoi creare una nuova istanza CTRL+ trascinamento.



La lumaca ha anche bisogno di conoscere in quale direzione si sta muovendo, se sinistra o destra. Possiamo farlo con le variabili di istanza. Queste sono semplicemente dei numeri o del testo memorizzati in ogni istanza dell'oggetto. Se abbiamo molte lumache, ognuna di queste memorizza le proprie istanze separatamente. Questo permette loro di avere valori unici per la salute, la direzione corrente, eccetera. Una tecnica semplice per controllare i nemici automaticamente è creare un'istanza di azione che memorizzi lo stato corrente. Per esempio, potrebbe essere "scappa", "insegue il giocatore" o "ferma". In questo caso abbiamo bisogno solo di "sinistra" e "destra", ma è utile impostarle allo stesso modo.

Selezionate l'oggetto Snail. Nella barra delle proprietà, cliccate su Aggiungi/modificare/rimuovere sotto 'Variabili dell'instanza'.





Comparirà una finestra di dialogo con l'elenco di tutte le variabili di istanza per l'oggetto. Cliccate l'icona 'Aggiungi nuova variabile di instanza' per aggiungerne una nuova. Impostate il nome su stato, il tipo su text, ed il valore iniziale su destra (per farla muovere a destra).

















! Una stringa è un termine di calcolo per una stringa di caratteri , come nel testo.

Cliccate OK e chiudete la finestra delle variabili di istanza. Passate al foglio degli eventi.

Vogliamo implementare la logica seguente:


  • se stato è "destra", simula il movimento del platform che avviene quando si preme il tasto 'freccia destra' per muovere la lumaca a destra.

  • se stato è "sinistra", simula il movimento del platform che avviene quando si preme il tasto 'freccia sinistra' per muovere la lumaca a sinistra.

Anche:

  • se il nemico colpisce l'EdgeMarker, cambia il suo stato (se "sinistra" impostalo a "destra"; se "destro" impostalo a "sinistra").

Possiamo impostare il movimento con i seguenti due eventi:


Evento: Nemico ► Confronta variabile istanza ► stato uguale a "destra" (usa le virgolette qui per indicare il testo)

Azione: Nemico ► Simula controllo► Destra


Dovrebbe essere semplice fare lo stesso per la sinistra. Vogliamo anche che l'immagine rifletta a sinistra e a destra come abbiamo fatto per il Player. Quindi aggiungi Snail ► Rfletti nell'evento "sinistro" e Snail ► Set non rifletti nell'evento "destro". Dovresti finire con questo:














Ora per invertire la direzione del nemico ai bordi:


Evento: Snail ► Alla collisione con un altro oggetto ► Marcatore

Sottoevento: Snail ► Confronta variabile di istanza ► azione uguale a "destra"

Azione: Snail ► Imposta valore ► stato a "sinistra"

Sottoevento: altrimenti

Azione: nemico ► Imposta valore ► stato a "destra"


E' importante usare Altrimenti (Else) qui, perchè gli eventi sono eseguiti dall'alto verso il basso. Se invece di 'Altrimenti' dicessimo 'azione = "sinistra"', notate che l'evento precedente l'ha appena impostato a quel valore. Quindi lo imposterebbe immediatamente a destra di nuovo, avendo in pratica nessun effetto. Usando 'else', preveniamo che avvenga il secondo evento se il primo fosse verificato.



















Per finire puoi aggiungere un sotto-gruppo al gruppo Nemici con il nome Snail e inserirci gli eventi Snail (clicca sul gruppo Nemici > tasto destro > aggiungi + sotto-gruppo).

Esegui il progetto. Nota che il nemico si muove avanti e indietro sulla sua piattaforma. Questo rende un po più difficile saltare sopra!


Prova a creare una piattaforma con due lumache. Nota che vengono controllate individualmente, dato che ciascuna di loro ha la propria variabile di istanza stato che memorizza il loro stato.


Si spera che cominciate a capire quanto siano importanti le variabili di istanza per controllare indipendentemente le istanze - non devono fare sempre le stesse cose identiche!

Prova ora ad inserire altri nemici che sono presenti nella cartella Enemies.

Nel prossimo tutorial vedremo come aggiungere nemici statici e far volare nemici "in aria"...

 

134 visualizzazioni0 commenti

Post recenti

Mostra tutti

Comments


bottom of page