Box2d机身旋转不起作用

时间:2012-02-29 20:03:41

标签: android transform box2d

我有一个简单的Box2d机身,有一个三角形的多边形,我试图旋转机身。以下代码似乎有效;我之前和之后都检查过身体角度,它已经像我预期的那样发生了变化。

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

问题是当我绘制多边形时顶点保持不变。这应该是怎么回事?我确实想知道是否需要对顶点应用变换,但无法找到方法。

非常感谢任何指针。

1 个答案:

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

似乎按预期工作。