How do I set my sprites x/y coordinates to my body’s x/y position?
Also I scaled everything down by one hundred since Box2D measures in meters, so am I
also supposed to scale my image down by 100 or something?? This is weird. Code below.
public class myGame implements ApplicationListener{
OrthographicCamera camera;
World myWorld;
//Ground
BodyDef floorDef;
Body floor;
FixtureDef floorFix;
PolygonShape floorShape;
//
//Sprite
Texture texture;
Sprite sprite;
BodyDef entityDef;
Body entity;
FixtureDef entityFix;
PolygonShape entityShape;
//
SpriteBatch batch;
Box2DDebugRenderer renderer;
@Override
public void create() {
camera = new OrthographicCamera();
camera.setToOrtho(false, Gdx.graphics.getWidth() / 100, Gdx.graphics.getHeight() /100);
camera.update();
renderer = new Box2DDebugRenderer();
myWorld = new World(new Vector2(0, -10), true);
batch = new SpriteBatch();
//Ground
floorDef = new BodyDef();
floorDef.type = BodyType.StaticBody;
floor = myWorld.createBody(floorDef);
floorShape = new PolygonShape();
floorShape.setAsBox(camera.viewportWidth, 20f/100f);
floorFix = new FixtureDef();
floorFix.shape = floorShape;
floor.createFixture(floorFix);
//
//Sprite
texture = new Texture(Gdx.files.internal("data/myEntity.png"));
sprite = new Sprite(texture);
entityDef = new BodyDef();
entityDef.type = BodyType.DynamicBody;
entityDef.position.set(new Vector2(440 /100, 400 /100));
entity = myWorld.createBody(entityDef);
entityShape = new PolygonShape();
entityShape.setAsBox(16f /100f, 16f / 100f);
entityFix = new FixtureDef();
entityFix.shape = entityShape;
entity.createFixture(entityFix);
}
@Override
public void resize(int width, int height) {
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
renderer.render(myWorld, camera.combined);
myWorld.step(1/60f, 6, 2);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
}