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は、最初の!この問題に直面した人を助けてください。