У меня просто тело Box2d с треугольной формой многоугольника, и я пытаюсь повернуть тело. Приведенный ниже код работает; Я проверил угол тела до и после, и он изменился, как я ожидаю.
body.setTransform(body.getPosition(), body.getAngle()+TURN_ANGLE);
Проблема в том, что при рисовании многоугольника вершины остаются неизменными. Так ли это должно быть? Я задался вопросом, нужно ли применять преобразование к вершинам, но не могу найти способ сделать это.
Любые указатели были бы очень оценены.
Первоначально мой метод рисования сделал что-то вроде этого:
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 ...
Кажется, работает как ожидалось.