Физика дальновидности (Box2D) - вращение светильника вокруг точки - PullRequest
3 голосов
/ 03 июля 2011

У меня проблемы с вращением прибора в Farseer Physics Engine (с использованием 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;

, который отлично работает.Проблема в том, что он всегда вращается вокруг верхнего левого угла прямоугольника, и мне нужно, чтобы он вращался вокруг центра.Как бы я мог вращать прибор вокруг его центра?(Я прошу прощения за свою глупость - я новичок в Farseer / Box2D, и я не сомневаюсь, что это главная причина этой проблемы, но я искал в Интернете уже несколько часов и ничего не нашел.)

1 Ответ

1 голос
/ 24 августа 2011

Решил это сам - оказалось, что тело вращалось вокруг своего центра, но прикрепленная к нему текстура вращалась вокруг его угла

...