我能否得到一个简单的答案,说明如何让图像出现在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
答案 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);
}