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
如果仍有问题,请检查 posx
、posy
、size
、PPM
的值
我在 LibGDX 上使用 Box2D,我正在处理物体和碰撞等。
现在知道我需要使用 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
如果仍有问题,请检查 posx
、posy
、size
、PPM