我试图在box2d中围绕其中心旋转一个物体。精灵的旋转有效,但是身体所做的是绕其左上角旋转。
旋转精灵的代码:
$(document).ready(function(){
$('.mark').click(function(){;
var y = $(this).outerHeight();
var z =$(window).scrollTop();
$('body').animate({scrollTop:z+y},800);
});
});
旋转体代码:
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);
}
正在发生的事情的图像:
答案 0 :(得分:2)
它可能与身体或固定物的原点的定义有关。你能告诉我你用来创建车身和夹具的代码吗?
<强> EDITED 强>
好的,我已经检查了你的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)。