Всем привет. Проблема видна на картинках. При разрешении программы 800х600 все вроде нормально. Но стоит развернуть программу, то кнопки становятся большими! Если нажать на кнопку Screen_2(там такой же скрин) кнопки уменьшаются! Как сделать так, что бы при разворачивании окна сразу все применялось, а не при нажатии кнопки? В общем уже неделю ни чего сделать не могу с этим. гугл тоже не помог. Вот решил сюда написать вдруг кто то сможет помочь. Выкладываю скрины и весь код: Главный класс, запускается с разрешением 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();
}
}
Класс первого скрина:
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() {
}
}
Второй скрин идентичный первому! Прошу помочь кто сталкивался с этой проблемой.
Попробуйте так:
stage = new Stage(new ScreenViewport());
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброго времени сутокПодскажите,как можно закруглить края кнопки?
Есть список массивов и необходимо добавить 5 строк, а потом удвоить значение, чтобы получилось следующее:
Не могу решить задачу на многопоточностьМетоды run у разных потоков выполняются не "одновременно", а друг за другом, сначала один поток полностью...
Задача : Вывести на экран список из 10 городов с текущей температурой окружающей средыСписок вывести по алфавиту