Box2D ChainShape VertexCount=0

Box2D ChainShape VertexCount=0


我在 LibGDX 上使用 Box2D,我正在处理物体和碰撞等。
,我遇到了一个 body 与另一个碰撞的问题,但它不应该那样做。
现在知道我需要使用 ChainShapes 之后,我就开始了。
每当你 运行 我的项目时,我都会收到断言错误:

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.


所以我尝试了一个小调试来打印顶点数,并将顶点输出打印为 0。
问题是我正在添加顶点,但它们似乎没有被添加...
添加verticies的代码:

    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());


顶点计数打印为 0,这就是我收到错误的原因,我不知道如何修复它,所以请帮忙 :)

以这种方式创建您的 ChainShape :

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

如果仍有问题,请检查 posxposysizePPM

的值