Fisica in Construct 2 : le basi

2

Tagged

Stats

4,700 visits, 5,216 views

Tools

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 24 Sep, 2014. Last updated 25 Feb, 2019

Construct 2 include il comportamento Fisica (behavior Physics), con tecnologia Box2DWeb.

Questo ti permette di avere oggetti che si muovono seguendo la fisica del mondo reale ecco una demo per avere un'idea.

La Fisica può rendere il tuo gioco veramente divertente e coinvolgente!

Di seguito una panoramica su come puoi usare la Fisica nei tuoi giochi.

Se hai fatto qualche lezione di Fisica a scuola, troverai alcune cose in Construct 2 che hai imparato. Spiegherò in breve le basi nel caso tu non sappia i concetti fondamentali. Sei interessato sulla teoria? Puoi provare a leggere l'articolo sui

Principi della dinamica.

Cercando "physics example" puoi trovare molti esempi di file .capx che usano il comportamento Fisica, vale la pena dare un'occhiata.

Come aggiungere il comportamento Fisica

Seleziona un oggetto a cui vuoi aggiungere il comportamento. Nella Properties Bar clicca su Behaviors accanto ad Add/Edit. Clicca l'icona con il + e seleziona Physics.

Ecco fatto!

Chiameremo qualsiasi oggetto con il comportamento Fisica "oggetto fisico".

Gravity(gravità)

Come impostazione predefinita, la gravità presente sugli oggetti fisici li fa accelerare verso il basso ed ha un valore di 10 (ricorda che in Construct 2 l'asse Y cresce verso il basso). Se vuoi annullare la gravità, puoi usare l'azione Set gravity su ogni oggetto fisico (nota che la ravità è applicata ad ogni oggetto fisico: se imposti la gravità a 0, essa verrà annullata ad ogni oggetto).

Costruire lo scenario

Tu non vuoi che la tua scenario di gioco "cada dallo schermo" in presenza della gravità! Anche a gravità 0, un pezzo dello scenario viene spostato verso l'esterno se qualcosa si scontra su di esso, e potrebbe anche iniziare a ruotare (Terza legge di Newton: ad ogni azione corrisponde una reazione uguale e contraria).

La maggior parte delle volte nei nostri giochi vogliamo simulare lo scenario come se fosse di roccia solida: non deve cioé cadere con la gravità e non deve essere spostato se qualcosa lo colpisce. Per fare ciò basta impostare l'opzione Immovable su Yes.

L'oggetto viene visto come se avesse una massa infinita, cioè non si muove!

Ricorda: gli oggetti fisici interagiscono solo con altri oggetti fisici.

Aggiungendo il comportamento Solid al piano non ha alcun affetto sugli oggetti fisici. Essi ignorano tutto ciò che non abbia il comportamento Fisica. Gli oggetti fisica passeranno attraverso gli oggetti Solid, a meno che anche ad essi non sia assegnato il comportamento Fisica.

Le altre proprietà fisiche

vediamo brevemente le altre proprietà del behavior:

collision mask (forma della collisione)

Questa opzione regola la forma dell'oggetto durante la collisione. L'impostazione predefinita è collision polygon.

Quando questa opzione è selezionata, se si apre l'editor di immagini e si clicca sull'icona set collision polygon, è possibile modificare a piacimento la forma con cui l'oggetto si andrà a scontrare. Bisogna fare attenzione a non usare troppi punti o il gioco potrebbe rallentare.

Se invece si imposta bounding box o circle, questa impostazione verrà ignorata e l'oggetto si comporterà come un rettangolo(bounding box) o come un cerchio(circle).

Prevent Rotation (impedisci rotazione)

Se questa opzione è abilitata, l'oggetto non ruoterà mai anche se colpito di striscio. Per esempio, in un gioco a piattaforme, probabilmente non vorresti che il tuo giocatore inciampi e cada di faccia ogni volta che prova a correre.

Density(densità)

Density è usata per determinare la massa dell'oggetto. Più l'oggetto è pesante più è difficile spostare l'oggetto(si noti che "peso" non è il termine corretto - il peso dipende dalla gravità ed un oggetto può avere massa anche a gravità zero).

La massa del tuo oggetto è determinata dalla densità moltiplicata per l'area dell'oggetto. Quindi un oggetto grande ha più massa di un oggetto più piccolo, anche se la densità è uguale.

Se crei un blocco di cemento, vorresti che esso abbia una densità maggiore di un blocco di spugna!

Friction(attrito)

Friction determina do quanto l'oggetto venga rallentato quando scorre su un altro oggetto. Quindi il pattinaggio sul ghiaccio dovrebbe attrito quasi nullo mentre il trascinamento di un mattone sul cemento dovrebbe avere attrito alto.

Elasticity(elasticità)

Elasticity determina di quanto l'oggetto venga rimbalzato. Un oggetto con elasticità alta avrà un rimbalzo più elevato mentre un oggetto senza elasticità non rimbalzerà.

Linear damping(smorzamento lineare)

Un oggetto si muove alla stessa direzione per sempre, a meno che qualcosa lo rallenti(principio di inerzia:"ogni oggetto un moto uniforme tende a rimanere in quello stato in assenza di forze esterne"). Si pensi ad esempio ad un oggetto nello spazio.

Nella Terra questo fenomeno, a causa della gravità, dell'attrito e della resistenza dell'aria è meno evidente.

Nel tuo gioco di fisica, potresti creare un oggetto che, con una spinta iniziale, si muova per sempre. Se invece vuoi simulare qualche tipo di resistenza (come la resistenza nell'aria) puoi aumentare lo smorzamento lineare in modo che esso, gradualmente, si fermi.

Angular damping(smorzamento angolare)

Lo smorzamento angolare è un concetto simile a quello lineare, ma ha a che fare con la rotazione dell'oggetto.Ugualmente alla velocità lineare, un oggetto nello spazio mantiene sempre la stessa velocità angolare. Con lo smorzamento si può far rallentare l'oggetto fino a non farlo più ruotare. Si noti che lo smorzamento è indipendente dalla velocità lineare.

Suggerimenti generali

Performance

Le simulazioni di Fisica consumano molta CPU perché le proprietà fisiche di un corpo possono richiedere molta elaborazione.

Per assicurarsi che il tuo gioco giri veloce è raccomandato non usare troppi oggetti alla volta. Più di 100 oggetti possono rallentare di molto il computer. Inoltre telefoni,tablet hanno potenze maggiori dei PC, perciò se si crea un gioco per dispositivi mobili si deve cercare di non superare i 20-30 oggetti.

Da notare che gli oggetti che sono completamente fermi non hanno bisogno di simulazione, quindi non hanno bisogno di elaborazione in più. Tuttavia, se l'oggetto comincia a muoversi, avrà bisogno di elaborazione. Bisogna tenere in considerazione anche questo aspetto: se ci sono centinaia di oggetti, ma solo una ventina si muovono, il gioco dovrebbe funzionare bene.

Stabilità

Le simulazioni fisiche non sono totalmente esatte. Se si simulano cose irrealistiche, come un oggetto gigante che colpisce un blocco di spugna alla velocità del suono, il risultato potrà non essere molto realistico. Infatti, tutto ciò che riguarda simulazioni estreme può diventare instabile (per esempio provocando il movimento di un oggetto dentro l'altro).

Cose come oggetti pesantissimi impilati, mucchi enormi di oggetti e oggetti velocissimi possono causare instabilità. Cerca di tenere tutto nel tuo gioco in quantità ragionevoli.

Lo stesso vale per la dimensione degli oggetti. Oggetti molto piccoli (sotto i 5 pixel) o molto grandi (sopra i 500 px) possono non essere simulati realisticamente. Prova a mantenere le grandezze tra i 5 e i 500 pixel e evita proporzioni estreme (per esempio 5x500 pixel).

Quindi la fisica funziona meglio con oggetti di dimensioni simili e velocità relativamente basse.

Altri comportamenti

Se muovi gli oggetti tramite eventi ( per esempio impostando le coordinate manualmente) o con altri comportamenti (come aggiungendo l' 8direction accanto a Physics), la simulazione fisica farà del suo meglio. Tuttavia, è molto più realistico muovere gli oggetti applicando impulsi e forze. Questo mantiene tutto "nel mondo della Fisica" e realistico.

Per esempio, se usi Set Position per muovere un oggetto istantaneamente verso l'alto del layout, esso verrà effettivamente teletrasportato. Questo però non è un fenomeno fisico, quindi il risultato potrebbe risultare fedele. Muovere un oggetto in un lasso di tempo così breve (1 tick=1/60 di secondo) modo causa una incredibile quantità di accelerazione, velocità e decelerazione.

Ricorda, per mantenere la simulazione stabile dovresti evitare questi estremi.

Inoltre il comportamento Platform aggiunti all'oggetto fisico,

tende a non andare d'accordo. Anche in questo caso meglio applicare delle forza. Vedi l'esempio Physics - rolling platformer fornito da Construct 2 per una dimostrazione su questo fenomeno.

Conclusioni

La Fisica può essere molto divertente nel tuo gioco, ma non dimenticare: evita troppi oggetti, evita gli estremi, cerca di muovere le cose tramite le forze e gli impulsi - e non fa male conoscere un po' di teoria!

Contento? Potresti essere interessato al prossimo tutorial: Fisica in Construct 2: Forze, impulsi e coppie

  • 0 Comments

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