Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - Processing - Gestire le collisioni
Forum - Javascript - Processing - Gestire le collisioni

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 12:01
Domenica, 07/09/2014
Sto lavorando con la Processing e vorrei capire come poter rilevare e gestire le collisioni tra per esempio due figure in movimento.
Spero che possiate aiutarmi al più presto.
Grazie:k:

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 14:51
Domenica, 07/09/2014
Analisi

Abbiamo la posizione dei due elementi nel singolo frame(quindi parliamo all'interno della funzione draw se usi ancora processing), chiamiamo i punti che definiscono la posizione del centro dei due oggetti p1 e p2 supponendo che siano entrambi di forma circolare, con raggio ripettivamente r1 r2
Ora ricavi le disequazioni dei due oggetti, in questo caso:
(x-p1x)^2+(y-p1y)^2<r1^2
(x-p2x)^2+(y-p2y)^2<r2^2
Sistema di queste due disequazioni e ad ogni frame verifichi se i due oggetti si compenetrano in tal caso ti comporti di conseguenza.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 19:02
Domenica, 07/09/2014
Di che figure stiamo parlando?


Il mio blog: https://piero.dev
PM Quote
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 1:54
Lunedì, 08/09/2014
Testo quotato

Postato originariamente da pierotofy:
Di che figure stiamo parlando?


Nel mio caso cerchi, comunque la domanda è più che altro come fare per esempio a non fare sovrapporre due cerchi in movimento quando sì incontrano. Bisogna solo fare calcoli sulle distanze delle figure o ci sarebbe qualche funzione o libreria per facilitare il tutto?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 2:20
Lunedì, 08/09/2014
Probabilmente esiste qualche libreria (hai provato a cercare su Google)?

Dipende poi decidere se usare una libreria esterna e' overkill per un task semplice come gestire la collisione tra due cerchi. La soluzione proposta da Roby94 e' piuttosto semplice da implementare.


Il mio blog: https://piero.dev
PM Quote
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 0:11
Martedì, 09/09/2014
Ok, ma per esempio per fare che se un cerchio collide con un altro lo sposta nella direzione della spinta?

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 0:35
Martedì, 09/09/2014
Prima di continuare, come è impostata il tuo sistema di gestione degli oggetti?
Per farti un esempio io quando lavoravo su processing ogni oggetto lo definivo come una classe che comprendeva:
X -> posizione sull'asse X [\u]
Y -> posizione sull'asse Y [\u]
Xspeed -> velocità di movimento sull'asse X [\u/s]
Yspeed -> velocità di movimento sull'asse Y [\u/s]
Xacceleration -> accelerazione sull'asse X [\u/s]
Yacceleration -> accelerazione sull'asse Y [\u/s]
DecelerationFriction -> decelerazione data dall'attrito del corpo [\u/s]
Le accelerazioni come potrai notare sono in unita di misura fittizia, è l'aumento di velocità al secondo a parer mio semplifica il sistema in alcuni casi rispetto al u/s^2

Ultima modifica effettuata da Roby94 il 09/09/2014 alle 0:36
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 1:08
Martedì, 09/09/2014


Il mio blog: https://piero.dev
PM Quote
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 16:16
Lunedì, 15/09/2014

Ultima modifica effettuata da pbe il 15/09/2014 alle 23:55
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo