我在LibGDX上使用Box2D,我正在处理机构和碰撞等。
HERE,我有一个身体与另一个人碰撞的问题,当它不应该这样做时。
现在知道我需要使用ChainShapes之后,我就开始了。
每当你运行我的项目时,我都会收到一个断言错误:
断言失败:( count> = 2),函数CreateChain,file /Users/tom/Coding/slave/workspace/libgdx-mac/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Collision/Shapes/b2ChainShape.cpp, 第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,这就是我收到错误的原因,我不知道如何修复它,所以请帮忙:))
答案 0 :(得分:1)
以这种方式创建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