2012-02-29 3 views
1

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

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

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

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

+0

как рисовать? – Andrew

+0

Да, как вы рисуете? :) – iforce2d

ответ

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

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

Смежные вопросы