Box2d вращение тела не работает

1

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

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

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

Любые указатели были бы очень оценены.

  • 0
    как ты рисуешь?
  • 0
    да, как ты рисуешь? :)
Теги:
transform
box2d

1 ответ

1
Лучший ответ

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

    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 ...

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню