将图像绘制到Box2D主体

时间:2014-07-29 01:00:45

标签: java libgdx box2d sprite gravity

我能否得到一个简单的答案,说明如何让图像出现在box2d的身体上?我尝试为图像和身体制作一个x和y int,但是一旦身体移动,图像就会保持静止。如果你的答案,请尽可能解释代码。如果您对我的完整源代码感兴趣,请查看我的帖子:http://www.java-gaming.org/topics/libgdx-drawing-a-sprite-on-to-a-box2d-body/33894/msg/319927/view.html#msg319927

1 个答案:

答案 0 :(得分:2)

这就是我一直用来做的事情。由于实体位置位于其中心,但精灵的位置位于左下角,因此需要将宽度/ 2和高度/ 2的偏移应用于精灵。

public void drawSpriteForBody(Body body, Sprite sprite, SpriteBatch spriteBatch) {
    Vector2 offset = new Vector2(sprite.getWidth() / 2f, sprite.getHeight() / 2f);
    Vector2 position = body.getPosition().cpy().scl(Constants.PIXELS_PER_METER).sub(offset);
    float rotation = body.getAngle() * MathUtils.radiansToDegrees;
    sprite.setRotation(rotation);
    sprite.setPosition(position.x, position.y);

    sprite.draw(spriteBatch);
}