2016-12-28 7 views
0

問題は画像に表示されます。 800x600解像度のプログラムでは、すべて正常と思われます。しかし、プログラムを展開する必要があります、ボタンは大きい(大きい)です!ボタンScreen_2を押すと(同じ画面があります)、ボタンが小さくなります(小さい)!ボタンを押したときではなく、一度にすべてのウィンドウを展開するとどうなりますか?一般的に、1週間または私はそれで何ができるのですか。 Googleも役に立たなかった。それは誰かが助けることができるかもしれないここに書くことに決めました。拡散スクリーンとのすべてのコード:ディスプレイ画面のボタンがLibgdxに変わります

メインクラスは、800×600の解像度で開始:

public class RunGame extends Game { 
    public SpriteBatch batch; 
    public BitmapFont font;  
    TestCamera camera1; 
    TestCamera2 camera2; 

    @Override 
    public void create() { 
     batch = new SpriteBatch(); 
     font = new BitmapFont(); 
     camera2 = new TestCamera2(this); 
     setScreen(camera1 = new TestCamera(this)); 
    } 

    @Override 
    public void resize(int width, int height) { 
     super.resize(width, height); 
    } 

    @Override 
    public void render() { 
     super.render(); 
    } 
} 

クラス最初Screen_1:

public class TestCamera implements Screen { 
    final RunGame runGameTest; 
    private Texture backText; 
    private Skin skin; 
    private Stage stage; 
    private OrthographicCamera camera; 
    private TextButton buttonNewGame; 
    private TextButton buttonOptions; 
    private TextButton buttonExit; 

    public TestCamera(final RunGame runGameTest) { 
     this.runGameTest = runGameTest; 
     camera = new OrthographicCamera(); 
    } 

    @Override 
    public void show() { 
     backText = new Texture(Gdx.files.internal("menu/menuScreen/background.jpg")); 
     skin = new Skin(Gdx.files.internal("fonts/uiskin.json")); 
     stage = new Stage(); 

     buttonNewGame = new TextButton("--------", skin, "default"); 
     buttonOptions = new TextButton("Screen_2", skin, "default"); 
     buttonExit = new TextButton("--------", skin, "default"); 

     buttonNewGame.setWidth(200f); 
     buttonNewGame.setHeight(50f); 
     buttonNewGame.setPosition(50, 240); 

     buttonOptions.setWidth(200f); 
     buttonOptions.setHeight(50f); 
     buttonOptions.setPosition(50, 300f); 

     buttonExit.setWidth(200f); 
     buttonExit.setHeight(50f); 
     buttonExit.setPosition(50, 360f); 

     buttonNewGame.addListener(new ClickListener(){ 
      @Override 
      public void clicked(InputEvent event, float x, float y){         
      } 
     }); 
     buttonOptions.addListener(new ClickListener(){ 
      @Override 
      public void clicked(InputEvent event, float x, float y){ 
    ((Game)Gdx.app.getApplicationListener()).setScreen(runGameTest.camera2);    
      } 
     }); 
     buttonExit.addListener(new ClickListener(){ 
      @Override 
      public void clicked(InputEvent event, float x, float y){ 
       Gdx.app.exit(); 
      } 
     }); 

     stage.addActor(buttonNewGame); 
     stage.addActor(buttonOptions); 
     stage.addActor(buttonExit); 

     Gdx.input.setInputProcessor(stage); 

    } 

    @Override 
    public void render(float delta) { 
     Gdx.gl.glClearColor(0, 0, 0.0f, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     runGameTest.batch.setProjectionMatrix(camera.combined); 
     camera.update(); 
       runGameTest.batch.begin(); 
       runGameTest.batch.draw(backText, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 
       runGameTest.font.draw(runGameTest.batch, "FPS: " + Gdx.graphics.getFramesPerSecond(), Gdx.graphics.getWidth()-76, Gdx.graphics.getHeight()-20); 
       runGameTest.font.draw(runGameTest.batch, "FULL SCREEN: F4 ", Gdx.graphics.getWidth()-150, Gdx.graphics.getHeight()-40); 
       runGameTest.batch.end(); 

     stage.act(); 
     stage.draw(); 

    } 

    @Override 
    public void resize(int width, int height) { 
     camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 
     stage.getViewport().update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true); 
     camera.update(); 
    } 

    @Override 
    public void dispose() { 
     Gdx.input.setInputProcessor(null); 
     backText.dispose(); 
     stage.dispose(); 
     skin.dispose(); 
    } 

    @Override 
    public void pause() { 
    } 

    @Override 
    public void resume() { 
    } 

    @Override 
    public void hide() { 
    } 
} 

2番目のScreen_2は、最初の!この問題に直面した人を助けてください。

答えて

0

問題が解決しました - stage = new Stage(new ScreenViewport()); そしてcameraをメインクラスに移動する必要がありました。 ありがとうございました

関連する問題