-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Closed
Description
The Box2DDebugRenderer draws the AABBs for CircleShapes in the wrong place if they have a position set (other than 0:0) and their body is rotated. Here's a simple test:
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.BodyDef;
import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer;
import com.badlogic.gdx.physics.box2d.CircleShape;
import com.badlogic.gdx.physics.box2d.World;
import com.badlogic.gdx.utils.viewport.ScreenViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.badlogic.gdx.tests.utils.GdxTest;
public class Box2DDebugRendererBug extends GdxTest implements Screen {
World world;
Viewport viewport;
Box2DDebugRenderer renderer;
public Box2DDebugRendererBug() {
ScreenViewport sv = new ScreenViewport();
sv.setUnitsPerPixel(1 / 32f);
viewport = sv;
}
@Override
public void create() {
world = new World(Vector2.Zero, true);
renderer = new Box2DDebugRenderer();
renderer.setDrawAABBs(true);
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.DynamicBody;
CircleShape shape = new CircleShape();
shape.setRadius(1);
shape.setPosition(new Vector2(0, 1)); // this causes the issue
world.createBody(bodyDef).createFixture(shape, 1).getBody().applyTorque(200, true);
shape.dispose();
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
world.step(1 / 60f, 8, 3);
renderer.render(world, viewport.getCamera().combined);
}
@Override
public void resize(int width, int height) {
viewport.update(width, height);
}
@Override
public void dispose() {
world.dispose();
renderer.dispose();
}
// if used as Screen
@Override
public void show() {
create();
}
@Override
public void render(float delta) {
render();
}
@Override
public void hide() {}
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
