首页 文章

当我将libGDX相机的位置设置为玩家x和y时,为什么我的播放器会移出屏幕?

提问于
浏览
0

在过去的几天里,我一直在修补用一台摄像机移动播放器并让摄像机跟随播放器的x和y . 当我搜索到这一切时,我找到的就是移动播放器并将相机的x和y设置为该值 . 但我遇到了问题,我的播放器不会停留在屏幕中间,这真的很烦人 . 如果有人能说我会那么棒 . 这是代码 .

在创造;

cam = new OrthographicCamera();
    cam.setToOrtho(false, Main.WIDTH, Main.HEIGHT);

    batch = new SpriteBatch();
    batch.setProjectionMatrix(cam.combined);

在更新中;

cam.position.set(Player.getX() + Main.WIDTH / 2, Player.getY() + Main.HEIGHT / 2, 0);
    cam.update();

在运动中;

if (Gdx.input.isKeyPressed(Keys.W) || Gdx.input.isKeyPressed(Keys.UP)) {

        Player.setVelY(Player.SPEED);

    } else if (Gdx.input.isKeyPressed(Keys.S)
            || Gdx.input.isKeyPressed(Keys.DOWN)) {

        Player.setVelY(-Player.SPEED);

    } else {

        Player.setVelY(0);

    }

    if (Gdx.input.isKeyPressed(Keys.A) || Gdx.input.isKeyPressed(Keys.LEFT)) {

        Player.setVelX(-Player.SPEED);
        Player.dir = Player.Direction.LEFT;

    } else if (Gdx.input.isKeyPressed(Keys.D)
            || Gdx.input.isKeyPressed(Keys.RIGHT)) {

        Player.setVelX(Player.SPEED);
        Player.dir = Player.Direction.RIGHT;

    } else {

        Player.setVelX(0);
        Player.dir = null;

    }

1 回答

  • 0

    我'd suggest you just set the camera position to the position of the Sprite of the player. I can'告诉你 Player.getX() 返回什么,但它应该返回表示玩家的Sprite的x坐标 . y坐标也是如此 .

    cam.position.set(Player.getX() + Main.WIDTH / 2, Player.getY() + Main.HEIGHT / 2, 0);

    将会

    cam.position.set(Player.getX() + Player.getWidth() / 2, Player.getY() + Player.getHeight() / 2, 0);

相关问题