Box2d вращение тела не работает - PullRequest
1 голос
/ 01 марта 2012

У меня просто тело Box2d с треугольной формой многоугольника, и я пытаюсь повернуть тело.Код ниже, кажется, работает;Я проверил угол тела до и после, и он изменился, как я ожидаю.

body.setTransform(body.getPosition(), body.getAngle()+TURN_ANGLE);

Проблема в том, что когда я рисую многоугольник, вершины остаются неизменными.Это так и должно быть?Я действительно задавался вопросом, нужно ли мне применять преобразование к вершинам, но я не могу найти способ сделать это.

1 Ответ

1 голос
/ 01 марта 2012

Первоначально мой метод рисования делал что-то вроде этого:

    PolygonShape src = (PolygonShape) f.getShape();

    for (int i = 0; i < src.getVertexCount(); ++i)
    {
      Vec2 srcPt = src.getVertex(i);

      // build polygon up of these points and draw ...

Мне удалось заставить его работать сейчас, изменив приведенный выше код так:

    PolygonShape src = (PolygonShape) f.getShape();

    Transform t = new Transform();
    t.set(new Vec2(0,0), body.getAngle());

    for (int i = 0; i < src.getVertexCount(); ++i)
    {
      Vec2 srcPt = Transform.mul(t, src.getVertex(i));

      // build polygon up of these points and draw ...

Кажется, работает как ожидалось.

...