У меня есть тело с многоугольником, созданное с помощью .setasbox, но когда я запускаю игру, поле немного больше моего спрайта. Я знаю, что setasbox использует половину высоты и половину ширины, я использовал свою константу масштабирования для преобразования метров в пиксели, и я знаю, что спрайт также имеет начало оси в левом нижнем углу. Несмотря на это, у меня все еще есть коробка шириной немного больше, чем спрайт, и этот зазор такой же, однако я меняю размер коробки...
Это код, который я использую для создания своей коробки (160 — это константа для масштабирования метров в пиксели):
public Block(World w, float halfWidth, float halfHeight, Vector2 position, Texture tex){
world = w;
bodyd = new BodyDef();
bodyd.type = BodyDef.BodyType.KinematicBody;
bodyd.gravityScale = 0;
shape = new PolygonShape();
shape.setAsBox(halfWidth, halfHeight);
fixtured = new FixtureDef();
fixtured.shape = shape;
fixtured.density = DENS;
fixtured.friction = FRIC;
fixtured.restitution = REST;
bodyd.position.set(new Vector2(position.x, position.y));
body = world.createBody(bodyd);
fixture = body.createFixture(fixtured);
body.setUserData(this);
texture = tex;
sprite = new Sprite(texture);
sprite.setSize(halfWidth * 2 * 160, halfHeight*2*160);
sprite.setPosition((body.getPosition().x - halfWidth) * 160, (body.getPosition().y - halfHeight) * 160);
}