libGDX相机没有翻译

时间:2016-12-16 06:05:02

标签: java android libgdx

我的GameStage课程中有一个摄像头,当按下左或右箭头键时我正试图翻译相机。当我按下任一键并打印相机x位置时,它会改变,但没有任何动作(屏幕上的演员保持在同一位置)。我做错了什么?

屏幕渲染方法:

public void render(float delta) {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    Gdx.gl.glClearColor(255, 255, 255, 255);

    gameStage.update();
    gameStage.draw();
    gameStage.act(delta);
}

涉及相机的舞台代码:

public GameStage() {
    super(new ScalingViewport(Scaling.stretch, Lib.WIDTH, Lib.HEIGHT, new OrthographicCamera(Lib.WIDTH, Lib.HEIGHT)));

    initCamera();

    Gdx.input.setInputProcessor(this);
}

public void initCamera() {
    camera = new OrthographicCamera(Lib.WIDTH, Lib.HEIGHT);
    camera.position.set(camera.viewportWidth / 2, camera.viewportHeight / 2, 0f);
    camera.update();
}

public void updateCamera() {
    if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) {
        camera.translate(-5, 0);
    } else if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) {
        camera.translate(5, 0);
    }

    camera.update();
}

public void update() {
    updateCamera();
}

谢谢:)

1 个答案:

答案 0 :(得分:2)

从您可见的代码我会说问题是你有两个camera。 一个是在调用super构造函数时创建的。一个人手动创建。即使您要翻译自己创建的camera,渲染batch也会使用stage s camera

删除您创建的camera,仅使用stage s camera