我需要我的身体围绕特定点旋转,如图所示。 我已经通过这行代码完成了(如果有更好的方法,请告诉我)
function [ m ] = testmean( data )
global iterationcounter
m=mean(data);
iterationcounter=iterationcounter+1
end
现在我想将精灵定位到我的旋转身体。我在这里做了什么
PolygonShape shape = new PolygonShape();
shape.setAsBox(1.8f / PPM, 0.2f / PPM, new Vector2(2,2), 0); // vector2 is
以及我如何绘制所有内容
sprite.setOrigin(sprite.getWidth() / 2, sprite.getHeight() / 2);
sprite.setPosition(body.getPosition().x * 32 - sprite.getWidth() / 2, body.getPosition().y * 32 - sprite.getHeight() / 2);
运行代码时会发生奇怪的事情。我看到身体正确旋转,但精灵围绕其原点(精灵的中间)旋转,因为这条线public void draw(SpriteBatch sb){
System.out.println(body.getWorldCenter());
sprite.setRotation(body.getAngle() * MathUtils.radiansToDegrees);
sprite.draw(sb);
}
但是我需要精灵位置总是与我的身体位置相同。我该怎么办呢?
答案 0 :(得分:0)
所有box2d机构的来源都是它们的位置。
重要提示:box / circle类型的box2d实体以其位置为中心,而其他类型的实体则不是。
如果要将旋转与精灵同步,则应将精灵原点放在身体位置上,然后旋转。
示例:如果您在位置0,0处有正文,而具有原点1,1的精灵,则应将该精灵放在位置-1,-1上,以便两者同步旋转!