我试着把一个物体绕着它的中心旋转。精灵的旋转是有效的,但身体所做的是围绕其左上角旋转。
旋转精灵的代码:
public void drawBitMap(Bitmap bit, float x, float y, float width, float height, float rotation){
Sprite sprt = null;
if (!sprts.containsKey(bit)) {
sprt = new Sprite(bit.texture);
sprts.put(bit, sprt);
}else{
sprt = sprts.get(bit);
}
sprt.setOrigin(width/2,height/2);
sprt.setRotation(rotation);
sprt.setPosition(x,y);
sprt.setSize(width,height);
sprt.draw(this);
}
旋转体代码:
body.setTransform(x, y, rotation * MathUtils.degreesToRadians);
正在发生的事情的图片:
它可能与物体或固定装置的起源的定义有关。你能给我看看你用来创建车身和夹具的代码吗?
已编辑
好的,我检查了你的JSON,这正是我所想的。在这些JSON中,夹具的定义是主体的中心位于其左下角。
点(0,0)是主体的中心,您定义的夹具在其左下角有该点,这就是它围绕左下角旋转的原因。
这听起来可能令人困惑,所以我要给你一个简单的例子:一个正方形。具有相同问题的尺寸为 1 的正方形的顶点定义为 (0,1)、(1,1)、(1,0) 和 (0,0)。
如上所述,点(0,0)是主体的中心,因此,为了使夹具和主体的中心对齐,顶点应围绕作为主体中心的点(0,00)定义。
正确的正方形将具有以下顶点:(-0.5,0.5)、(0.5,0.5),(0.5,-0.5),(-0.5,-0.5)。