我有一个简单的Box2d机身,有一个三角形的多边形,我试图旋转机身。以下代码似乎有效;我之前和之后都检查过身体角度,它已经像我预期的那样发生了变化。
body.setTransform(body.getPosition(), body.getAngle()+TURN_ANGLE);
问题是当我绘制多边形时顶点保持不变。这应该是怎么回事?我确实想知道是否需要对顶点应用变换,但无法找到方法。
非常感谢任何指针。
答案 0 :(得分: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 ...
似乎按预期工作。