Libgdx Table 混乱

Libgdx Table Confusion

我正在尝试以垂直居中的方式显示图像和屏幕菜单按钮。

我几乎只使用演员就完成了,但我认为布局可能是这里的最佳实践。

所以我已经完成了:

  public MenuScreen(final MyGame myGame) {
    this.myGame = myGame;
        font = new BitmapFont();
        camera = new OrthographicCamera();
        camera.setToOrtho(false, 480, 800);
        stage = new Stage();
        batch = new SpriteBatch();
        stage.getViewport() .setCamera(camera);
        skin = new Skin(Gdx.files.internal("menu/glassy-ui.json"));

        button = new TextButton("NEW GAME", skin);
        button.setTransform(true);
         button.setScale(0.5f);

        button.addListener(new ClickListener(){
            @Override
            public void clicked(InputEvent event, float x, float y) {
                myGame.setScreen(new GameScreen( myGame));
            }
        });
        Image imageLogo = new Image( new Texture(Gdx.files.internal("titleLogo.png")));
       // imageLogo.setScaling(Scaling.fit);

        Table myTable = new Table();
        myTable.setFillParent(true);
        myTable .add(imageLogo);// .width(imageLogo.getWidth()).height(imageLogo.getHeight()).row()   ;

        myTable.row() ;
        myTable.add(button);

        stage.addActor(myTable);
        Gdx.input.setInputProcessor(stage);
        batch.setProjectionMatrix(camera.combined);
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(1, 1, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        camera.update(); 
        batch.begin();
        stage.act(delta);
        stage.draw();
        batch.end();
    }

但舞台的视口似乎没有影响屏幕外的 table 区域,我什至不确定图像是否显示...

这是我看到的:

尝试阅读 wiki 和其他开发人员的方法。 据我所知,每个人都有不同的系统来实现该目标,没有人使用相机,我怀疑这才是我真正的问题。

谢谢!

stage.setDebugAll(true);   //enable debug mode and check what's going on 

camera.setToOrtho(false, 480, 800);

这样您就可以通过固定值设置相机的视口。您不是 resizing/scaling 任何 Actor,因此请确保您的所有 Actor 的大小都应在 480、800 的范围内。

camera.position.set(Gdx.graphics.getWidth()/2,Gdx.graphics.getHeight()/2,1);

这会将您的相机移到中央。