我开发 jbox2d (java),在创建多边形时遇到问题。
我无法选择多边形的位置,我定义了一个字段“m_centroid”作为窗口的中心。多边形保留在左角。
public class Player {
private Body body;
public Player(World world) {
BodyDef bodyDef = new BodyDef();
bodyDef.angle = (float) Math.toRadians(0.0f);
bodyDef.position.set(800.0f / 2, 600.0f / 2);
bodyDef.type = BodyType.DYNAMIC;
/*Vec2[] vertices = {
new Vec2(bodyDef.position.x, bodyDef.position.y - 10.0f),
new Vec2(bodyDef.position.x + 10.0f, bodyDef.position.y + 10.0f),
new Vec2(bodyDef.position.x - 10.0f, bodyDef.position.y + 10.0f)
};*/
Vec2[] vertices = {
new Vec2(0.0f, - 10.0f),
new Vec2(+ 10.0f, + 10.0f),
new Vec2(- 10.0f, + 10.0f)
};
PolygonShape shape = new PolygonShape();
shape.set(vertices, vertices.length);
shape.m_centroid.set(bodyDef.position);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = shape;
fixtureDef.density = 0.5f;
fixtureDef.friction = 0.3f;
fixtureDef.restitution = 0.5f;
body = world.createBody(bodyDef);
body.createFixture(fixtureDef);
}
}