我正在 LibGDX 上使用 Box2D,并且正在处理物体和碰撞等。
HERE ,我遇到了一个 body 与另一个 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。
问题是我正在添加顶点,但它们似乎没有添加......
添加顶点的代码:
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
如果仍有问题,请检查 posx
、posy
、size
、PPM
的值
关于java - Box2D ChainShape 顶点计数=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44299392/