Farseer物理引擎(Box2D)- Fixture围绕点旋转

3

我在使用Farseer物理引擎(使用XNA)旋转装置时遇到了一些麻烦。基本上,我有一个装置,设置如下:

 private void setUpPhysics(World gWorld, Vector2 position)
    {
        body = new Body(gWorld);
        body.BodyType = BodyType.Dynamic;
        carFixture = FixtureFactory.AttachRectangle(ConvertUnits.ToSimUnits(21f), ConvertUnits.ToSimUnits(35f), 5f, ConvertUnits.ToSimUnits(position), body);
        carFixture.Restitution = 4f;
        carFixture.Friction = 5f;
        carFixture.Body.AngularDamping = 1f; 
        carFixture.Body.LinearDamping = 1f;
    }

然后我使用代码旋转它

carFixture.Body.Rotation -= 0.01f;

这个可以正常工作。问题是,它总是围绕矩形的左上角旋转,而我需要它围绕中心旋转。如何使fixture围绕其中心旋转?(对不起,因为我很菜 - 我是Farseer / Box2D的新手,我毫不怀疑它是造成这个问题的主要原因,但我已经在网上搜寻了好几个小时,什么都没有找到。)


一个物体围绕它的原点旋转,所以你需要将夹具放置在(0,0)处使其居中。这个AttachRectangle函数似乎需要一个偏移量,看起来是为了这个目的。 - iforce2d
1个回答

1
我自己解决了这个问题——原来身体是围绕它的中心旋转,但附着在它上面的纹理是围绕它的角落旋转。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接