mercoledì 19 ottobre 2011

Blender Game Engine: Collisioni selettive

Impostando la gestione della fisica, possiamo ottenere una rilevazione-reazione realistica delle iterazione tra oggetti, ma come fare per ottenere reazioni diverse alla collisione di oggetti diversi.
Per esempio, come facciamo a fare in modo che toccando una sfera ci venga assegnato un determinato punteggio, mentre toccando un cilindro il gioco finisca?

All'oggetto rilevatore (il personaggio, il proiettile?) si deve assegnare una propieta' a cui far riferimento in seguito.
Per fare questo si deve premere il pulsante "Add Game Property", presente sulla sinistra dei logic bricks.
In questo esempio abbiamo assegnato il nome "prova" di tipo numerico a virgola mobile, con un valore pari a zero.

All'oggetto bersaglio (la sfera), aggiungeremo un sensore di tipo "Collision" e nella casella property metteremo il nome della propieta' assegnata precedentemente (relativo all'oggetto rilevatore). Se il campo "property" del sensore "Collision", rimane vuoto, significa che verrano considerate le collisioni con qualsiasi altro oggetto, mentre premendo il selettore "M/P" si attivera' la discriminazione verso il tipo di materiale. In questo caso:
Collision (Property:prova) -> AND -> Property (add) (Prop:Punteggio; Value:10)
Quando il personaggio tocca la sfera verra' aggiunto il valore 10 alla variabile Punteggio.

Se volessimo che il personaggio quando tocca il cilindro finisca il gioco, bastera' mettere nella logica del cilindro:
Collision (Property:prova) -> AND -> Game (Quick this game)


Blender Game Engine - 01: Le Basi.
BGE 2.50: 02 - I Logic Bricks 

Nessun commento:

Posta un commento

Related Posts Plugin for WordPress, Blogger...