Libgdx表混乱

时间:2017-03-05 16:30:33

标签: android libgdx tablelayout

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

我几乎完成了只使用演员,但我认为布局可能是最好的做法。

所以我已经完成了:

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

但似乎舞台的视口不会影响到屏幕外的桌面区域,我甚至不确定图像是否显示......

这就是我所看到的: menu screen snapshot

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

camera.setToOrtho(false, 480, 800);

通过这个你用固定值设置相机的视口。您没有调整任何Actor的大小/缩放,因此请确保您的所有actor在480,800的上下文中都应该具有大小。

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

这会将相机移动到中心位置。