2017-03-05 135 views
0

我试图在垂直和中心的方式来显示图像,并为我的屏幕菜单按钮。Libgdx表混乱

我已经基本完成,只有使用的演员,但我决定,也许布局会在这里的最佳实践。

所以我做:

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和其他开发人员的方法。 对于我读过每个人都有不同的系统实现这个目标,没有人使用的相机,我怀疑这是我真正的问题。

谢谢!

回答

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

camera.setToOrtho(false, 480, 800); 

通过这个,你可以通过固定值设置相机的视口。你是不是调整/缩放任何演员,以便确保所有的演员应该在480范围内有大小,800

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

这将在中心移动相机拍摄。