2017-08-21 6 views
0

J'ai deux objets, l'un statique et l'autre dynamique. Les montages des deux ont été créés à partir de ChainShape. Le problème est qu'ils passent l'un par l'autre.Les objets se croisent

Screenshot:

enter image description here

Répondre

0

Deux ChainShapes DonT entrent en collision les uns avec les autres faire l'un d'eux un PolygonShape. Cela fonctionne pour moi:

BodyDef triangleDef = new BodyDef(); 
triangleDef.type = BodyDef.BodyType.DynamicBody; 
triangleDef.position.set(0, 0); 
Body triangleBody = this.world.createBody(triangleDef); 
PolygonShape triangleShape = new PolygonShape(); 
triangleShape.set(new float[]{ 0, 0.5f, -0.5f, -0.5f, 0.5f, -0.5f }); 
triangleBody.createFixture(triangleShape, 1); 
triangleShape.dispose(); 

BodyDef groundDef = new BodyDef(); 
triangleDef.position.set(0, 0); 
Body groundBody = this.world.createBody(groundDef); 
ChainShape groundShape = new ChainShape(); 
groundShape.createLoop(new float[]{ -10, 10, -10, -10, 10, -10, 10, 10 }); 
groundBody.createFixture(groundShape, 1); 
groundShape.dispose(); 
+0

Les deux corps auront plus de 8 sommets, donc je ne peux pas utiliser juste la forme de polygone. As-tu d'autres idées? – RedLipsAlwaysLie

+0

Vous pouvez diviser la forme en plusieurs polygones et les ajouter tous au même corps. – Tejay

+0

J'ai compris. Merci pour les réponses – RedLipsAlwaysLie