Java Box2D围绕物体的中心旋转物体。。LIBGDX
我试图在box2d中围绕物体的中心旋转物体。精灵的旋转是有效的,但身体所做的是围绕其左上角点旋转 旋转精灵的代码:Java Box2D围绕物体的中心旋转物体。。LIBGDX,java,android,libgdx,box2d,physics,Java,Android,Libgdx,Box2d,Physics,我试图在box2d中围绕物体的中心旋转物体。精灵的旋转是有效的,但身体所做的是围绕其左上角点旋转 旋转精灵的代码: 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.t
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,0)定义顶点
正确的正方形应该有以下顶点:(-0.5,0.5),(0.5,0.5),(0.5,-0.5),(-0.5,-0.5)。它可能与主体或固定装置原点的定义有关。你能给我看一下你用来创建车身和夹具的代码吗 已编辑 好的,我已经检查了你的JSON,它正是我所想的。在这些JSON中,夹具的中心位于其左下角 点(0,0)是主体的中心,您正在定义的装置在其左下角具有该点,这就是它绕其左下角旋转的原因 这听起来可能让人困惑,所以我要给你一个简单的例子:正方形。 具有相同问题的大小为1的正方形的顶点将定义为(0,1)、(1,1)、(1,0)和(0,0) 如上所述,点(0,0)是主体的中心,因此,为了对齐装置和主体的中心,应围绕主体中心点(0,0)定义顶点
正确的正方形将具有以下顶点:(-0.5,0.5),(0.5,0.5),(0.5,-0.5),(-0.5,-0.5)。im使用实体的物理实体编辑器。代码:[link]()我可以看一下你用来加载装置的json文件吗?我相信用0.5减去顶点我用0.5减去所有顶点,所有的都成功了!谢谢:)这篇文章帮了我很大的忙,非常感谢@Taivaanm使用物理身体编辑器来编辑身体。代码:[link]()我可以看一下你用来加载装置的json文件吗?我相信用0.5减去顶点我用0.5减去所有顶点,所有的都成功了!谢谢:)这篇帖子帮了我很多忙,非常感谢@taivan