下面的图片举例说明了我要做的事情。多边形体应该保持其初始位置旋转,红点(也可能是另一个体)保持在中心位置。
这是我尝试过的,但它会移动到红点附近:
Vector2 position = body2.getWorldCenter();
body2.setTransform(position, body2.getAngle() + 0.01f);
有什么想法吗?
更新1
以下是创建Polygon主体的方法:
private Body createPolygonBody(Vector2 pos) {
// 0. Create a loader for the file saved from the editor.
BodyEditorLoader loader = new BodyEditorLoader(Gdx.files.internal("shot/wall"));
// 1. Create a BodyDef, as usual.
BodyDef bd = new BodyDef();
bd.position.set(pos);
bd.type = BodyType.StaticBody;
// 2. Create a FixtureDef, as usual.
FixtureDef fd = new FixtureDef();
fd.density = 1;
fd.friction = 0.5f;
fd.restitution = 0.3f;
fd.filter.categoryBits = CATEGORY_SCENERY;
fd.filter.maskBits = MASK_SCENERY;
// 3. Create a Body, as usual.
Body body = world.createBody(bd);
// 4. Create the body fixture automatically by using the loader.
loader.attachFixture(body, "one_door",fd, 3f);
return body;
}
答案 0 :(得分:1)
您必须相对于要旋转的点生成多边形。
以下是您需要做的事情:
轮换应该按照你想要的方式工作。