2010-05-05 19 views
5

ho integrato box2d nel mio motore, (Debug Draw, etc.) e con un mondo che posso gettare in alcuni 2d piazze/rettangoli eccSolo l'integrazione del rilevamento di collisione Box2D nel mio motore 2d?

ho visto this postale, in cui l'utente è fondamentalmente non si usa un mondo per il rilevamento delle collisioni, tuttavia l'utente non spiega nulla su come sta usando il collettore (b2Manifold), ecc

Another post, è nel forum cocos2d, (scorrere verso il basso per la Lam utente nella terza replica)

Qualcuno potrebbe aiutarmi un po 'con questo ?, in pratica vuole aggiungere il rilevamento delle collisioni senza la necessità di usare b2World, ecc. Ecc.

Grazie mille!

risposta

2

Il codice in entrambi i post mi sembra completo. Si inizia con due forme poligonali e le relative trasformazioni corrispondenti e da b2CollidePolygons si ottiene un collettore di contatti.

b2Manifold è solo una raccolta di punti in cui i confini delle due forme si intersecano. Nel codice postato l'autore usa che se il numero di punti del collettore è maggiore di zero c'è una sovrapposizione. A seconda della natura delle forme, quando si sovrappongono può esserci un numero diverso di punti di intersezione.

Si noti che la gestione delle collisioni di b2World è abbastanza robusta. Al di là delle semplici query di collisione, ha un abbattimento su vasta scala, ray-casting, un albero spaziale, eventi di inizio contatto e contatto finale, una gestione efficiente della memoria per nominare alcune cose. Esistono classi nell'API per la maggior parte di queste attività, ma non posso dire di avere familiarità con l'utilizzo manuale. Potrebbe valere la pena dare un'occhiata.

Problemi correlati