2017-06-01 1 views
0


Im travaillant avec Box2D sur LibGDX, et je travaille avec les organismes et les collisions, etc ..
HERE, j'ai eu le problème d'un corps entrant en collision avec un autre, quand il ne devrait pas fais ça.
Maintenant, après savoir que j'ai besoin d'utiliser ChainShapes, j'ai commencé avec ça.
Chaque fois que u exécuter mon projet, je reçois une erreur d'assertion:
Box2D ChainShape VertexCount = 0

Assertion failed: (count >= 2), function CreateChain, file /Users/tom/Coding/slave/workspace/libgdx-mac/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Collision/Shapes/b2ChainShape.cpp, line 62.


donc j'ai essayé une petite mise au point d'imprimer le nombre de sommets, et le sommet Printed 0.
Le problème est que J'ajoute les sommets et ils ne semblent ajouter ...
code pour ajouter des vertices:

chain = new ChainShape(); 
    chain.setNextVertex(new Vector2((posx - size)/PPM, (posy + size)/PPM)); 
    chain.setNextVertex(new Vector2((posx + size)/PPM, (posy + size)/PPM)); 
    chain.setNextVertex(new Vector2((posx + size)/PPM, (posy - size)/PPM)); 
    chain.setNextVertex(new Vector2((posx - size)/PPM, (posy - size)/PPM)); 
    System.out.println(chain.getVertexCount()); 


nombre Vertex est imprimé 0, c'est pourquoi je reçois l'erreur, je ne sais pas comment le résoudre, alors s'il vous plaît aider :)

+0

Cela aiderait-il? (non testé) https://stackoverflow.com/questions/35381381/chainshape-in-box2d/35668026 – javaLover

+0

@javaLover J'ai essayé cela, et je suis toujours en train de faire la même erreur, j'ai beaucoup cherché, mais je n'ai rien trouvé d'utile, C'est pourquoi j'ai posté ici – Liwaa

+0

@Liwaa quelle est la valeur et le type de ces variables «posx», «posy», «taille», «PPM» – Aryan

Répondre

1

Créez votre ChainShape de cette façon:

ChainShape chain=new ChainShape(); 

Vector2 vector[]=new Vector2[4]; 
vector[0]=new Vector2((posx - size)/PPM, (posy + size)/PPM); 
vector[1]=new Vector2((posx + size)/PPM, (posy + size)/PPM); 
vector[2]=new Vector2((posx + size)/PPM, (posy - size)/PPM); 
vector[3]=new Vector2((posx - size)/PPM, (posy - size)/PPM); 

chain.createChain(vector); 

System.out.println(chain.getVertexCount()); // 4 on console 

Si encore vous avez un problème, vérifiez la valeur de posx, posy, size, PPM

+1

Mec, merci! Cela a fonctionné parfaitement :) – Liwaa