我是JBox2D的新手,我仍在努力弄清楚如何使用它。我只是通过制作各种形状和所有这些来利用图书馆。 我发现当我制作这个应该是三角形的物体时,它大部分都会正确反弹,直到它落在其中一个顶点上,并完全停止。每次都是相同的顶点,我不知道为什么。
//right triangle constructor
public PhysObject(World wld, float posx, float posy, Color c, BodyType bdtp, float size) {
color = c;
x = posx;
y = posy;
s = size/2;
bd = new BodyDef();
bd.position.set(new Vec2(x, y));
bd.bullet = true;
bd.type = bdtp;
body = wld.createBody(bd);
ps = new PolygonShape();
ps.m_vertexCount = 3;
ps.m_vertices[0].set(-s, -s);
ps.m_vertices[1].set(s, -s);
ps.m_vertices[2].set(s, s);
fd = new FixtureDef();
fd.shape = ps;
fd.friction = 0.3f;
fd.restitution = 0.8f;
fd.density = 1;
body.createFixture(fd);
}
这里也是我绘制它的代码
private void drawTriangle() {
glBegin(GL_TRIANGLES);
for(int i = 0; i < ps.m_vertexCount; i++) {
glVertex2f(ps.m_vertices[i].x*30, ps.m_vertices[i].y*30);
}
glEnd();
}