libgdx和box2d中的摄像头

时间:2013-10-11 16:17:23

标签: camera scroll box2d libgdx

我使用libGDX和box2D开发2D游戏。相机跟随身体。我想滚动背景(png 3200X48)。现在相机在box2D世界中运行良好但背景不动。我搜索并尝试了许多解决方案,但没有帮助。什么是最好的解决方案?也许两个相机一个用于物理世界,第二个用于libgdx场景?有人有类似的问题吗?感谢帮助。 以下是我的代码的一部分

float w = 320;
float h = 480;

    @Override
public void show() {
        camera = new OrthographicCamera();
    camera.setToOrtho(false, w/2, h/2);
    world = new World(new Vector2(0, -20), true);
    box2DDebugRenderer = new Box2DDebugRenderer();
background = new Texture(Gdx.files.internal("gfx/forklift/background.png"));
bg = new Sprite(background);
......}
@Override
public void render(float delta) {
    Gdx.gl.glClearColor(1f, 1f, 1f, 1f);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
moveCamera(dynamicBody.getPosition().x);
 moveBody();
    batch.begin();
    batch.draw(background, 0, 0, 3200, 480);
    batch.end();
Gdx.app.log("", ""+dynamicBody.getPosition());
    world.step(1/60f, 6, 2);
    box2DDebugRenderer.render(world, camera.combined);}

public void moveCamera(float x){
    camera.position.set(x, dynamicBody.getPosition().y, 0);
    camera.update();
    }
@Override
public void resize(int w, int h) {
camera = new OrthographicCamera(w, h);
    camera.translate(h/2, w/2, 0);
    super.resize(w, h);
}

1 个答案:

答案 0 :(得分:0)

使用batch.setProjectionmatrix(camera.combined) 在batch.begin()

之前