java - libGDX 相机不翻译

标签 java android libgdx

我的 GameStage 类中有一个摄像头,我试图在按下左箭头键或右箭头键时平移摄像头。当我按下任一键并打印相机 x 位置时,它会发生变化,但没有任何移动(屏幕上的 Actor 保持在同一位置)。我做错了什么?

屏幕渲染方法:

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();
}

谢谢:)

最佳答案

根据您可见的代码,我会说问题是您有两个相机。 一个是在调用 super 构造函数时创建的。还有一个是手动创建的。即使您正在翻译您创建的 camera,渲染 batch 也会使用 stagecamera

删除您创建的camera,只使用stagecamera

关于java - libGDX 相机不翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41178191/

相关文章:

java - 根据用户选择用 JScroll Pane 填充 JTabbed Pane

android - libGDX IntelliJ IDEA 无法访问 com.badlogic.gdx.Application

java - 关于在2D游戏中编写重力代码的问题

linux - OpenJDK 运行时环境与 Java2 运行时环境

java - 如何从按钮javafx获取正确的文本值

java - 如何在给定目录中动态添加文本文件,在 Java 中?

android - 将富编辑文本保存到数据库

Android:takePicture() 没有声音

java - 无法解析目标 'android-21'

java - HTTP 请求处理程序连接重置错误