Guida a Construct 2 per principianti

2

Index

Tagged

Contributors

Stats

145,606 visits, 173,355 views

Tools

Translations

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 27 Apr, 2015. Last updated 25 Feb, 2019

Aggiungere funzionalità al gioco

Se descrivessimo ogni evento in modo dettagliato come in precedenza, questo tutorial diventerebbe piuttosto lungo. Proseguiamo quindi con una descrizione un po' più breve per i prossimi eventi. Ricordate, i passi per aggiungere una condizione o azione sono:

1. Fare doppio clic per inserire un nuovo evento, o fare clic sul link Add action per aggiungere un'azione.

2. Fare doppio clic sull’oggetto che vi interessa per vederen le condizioni / azioni.

3. Fare doppio clic sulla condizione / azione che si desidera.

4. Immettere i parametri, se sono necessari.

Da ora in poi, gli eventi sarà descritto come oggetto, seguito dalla condizione / azione, seguito da eventuali parametri. Ad esempio, l’evento creato in precedenza lo vedreste così scritto:

Add condition System -> Every tick

Add action Player -> Set angle towards position -> X: Mouse.X, Y: Mouse.Y

Facciamo sparare il giocatore

Vogliamo che al click del mouse il giocatore spari un proiettile. Questo può essere fatto con l'azione Spawn an object all’interno di Player, che crea una nuova istanza di un oggetto nella stessa posizione ed angolo. Il Bullet movement che avevamo aggiunto in precedenza gli permetterà di sparare. Fate questi eventi:

Condition: Mouse -> On click -> Left clicked (the default)

Action: Player -> Spawn another object -> Per Object, scegliete il Bullet object. Per Layer, mettete 1 (il layer principale è il layer 1 - ricordate che Construct 2 inizia a contare i layer da zero). Lascia Image point a 0.

Ecco cosa dovreste vedere:

Se fate partire il gioco, vi accorgerete che il proiettile viene sparato dal corpo del giocatore, e non dalla punta della pistola! Sistemiamolo andando a cambiare il posizionamento dell’ image point (punto immagine) alla fine della pistola (l’image point non è altro che un punto dell’immagine da cui noi vogliamo apparire qualcosa).

Cliccate con il pulsante destro sul vostro giocatore oppure a destra sulla barra degli oggetti e selezionate Edit animations.

Apparirà di nuovo l'editor di immagini per il giocatore. Cliccate sul tool "Origine e punto di immagine" :

E vi si aprirà la finestra di dialogo correlata:

Si noti l’origine dell’oggetto appare come una macchia rossa. Questo è l’"hotspot" o "punto pivot" dell’oggetto. Se si ruota l’oggetto, gira intorno all’origine. Vogliamo aggiungere un altro punto dell’immagine per rappresentare la pistola, quindi fate clic sul pulsante verde add. Vi apparirà un punto blu – questo è il nostro punto nuovo punto di immagine. Trascinate questo punto alla fine della pistola del giocatore per posizionare il punto immagine qui:

Chiudete l’editor di immagini. Fate doppio clic sull'azione Spawn an object che abbiamo aggiunto in precedenza, e cambiate il punto di immagine a 1. (Il punto di origine è sempre il primo punto di immagine, e ricordatevi che Construct 2 inizia a contare da zero) L’evento dovrebbe apparire come qui sotto – nota che adesso dice Image Point 1:

Fate partire il gioco, finalmente adesso il proiettile parte dalla pistola! Il proiettile ancora non fa niente, però. Si spera, comunque, che inizierete a capire come una volta compreso il sistema degli eventi, sia possibile mettere insieme le varie funzionalità necessarie molto rapidamente.

Facciamo in modo che il proiettile uccida i mostri. Aggiungete questi eventi:

Condition: Bullet -> On collision with another object -> scegli Monster.

Action: Monster -> Destroy

Action: Bullet -> Spawn another object -> Explosion, layer 1

Action: Bullet -> Destroy

L’effetto esplosione

Fate partire il gioco e provate a sparare ad un mostro. Ops, l’esplosione ha quell’orribile bordo nero :

Potreste aver predetto che sarebbe stato così fin dall’inizio, e magari vi stavate chiedendo se il vostro gioco fosse realmente finito così! Non preoccupatevi, non lo farà. Cliccate sull’oggetto Explosion o sulla barra degli oggetti in basso a destra o nella barra Project (che era vicino alla barra dei layers). Le sue proprietà vengono visualizzate nella barra delle proprietà a sinistra. In fondo, impostate la proprietà Blend mode a Additive. Provate di nuovo il gioco.

Perchè funziona? Senza entrare troppo nel dettaglio, diciamo che le immagini ordinarie vengono incollate sulla parte superiore dello schermo. Con l’effetto additivo invece ciascun pixel viene aggiunto (come se fosse sommato) con i pixel di sfondo dietro. Il nero è considerato un valore in pixel pari a zero, quindi semplicemente non viene aggiunto – con il risultato che non si vede lo sfondo nero. I colori più luminosi aggiungono di più, quindi appaiono in maniera più vivida. Questo tool è fantastico per le esplosioni e gli effetti di luce.

Rendiamo i mostri un po' più intelligenti

Per adesso i mostri passeggiano semplicemente fuori dallo schermo, partendo da destra. Facciamoli un po' più interessanti. Prima di tutto, facciamoli cominciare ad un angolo random :

Condition: System -> On start of Layout

Action: Monster -> Set angle -> random(360)

Adesso però continueranno ancora a vagare per sempre quando lasciano il layout, per non essere mai più rivisti. Teniamoli all'interno. Ciò che faremo è far si che i mostri puntino al giocatore quando lasciano il layout. Questo fa due cose: restano sempre all'interno del layout, e se il giocatore resta immobile i mostri vanno verso di lui!

Condition: Monster -> Is outside layout

Action: Monster -> Set angle toward position -> Per X, Player.X - Per Y, Player.Y.

Eseguite il gioco. Potrete notare che i mostri adesso girano per tutto il layout, alla ricerca del giocatore. Non è una vera e propria Intelligenza Artificiale, ma funziona!

Ora, supponiamo di voler colpire un mostro cinque volte prima di ucciderlo, piuttosto che la morte istantanea come è in questo momento. Come lo facciamo? Se ci limitassimo a memorizzare un contatore "Salute", una volta colpito un mostro cinque volte tutti i mostri morirebbero. Invece, abbiamo bisogno che ogni mostro si ricordi la propria salute. Possiamo farlo con le instance variables.

  • 0 Comments

Want to leave a comment? Login or Register an account!