Java LibGDX:Screenresize从横向更改为纵向后不起作用
我正在使用一个应用程序,图形效果很好,直到我切换到肖像模式。现在,图形没有按照我想要的方式调整大小,触摸坐标也不是它们应该位于的位置(像以前一样)。我应该改变什么来正确调整图像和所有内容的大小Java LibGDX:Screenresize从横向更改为纵向后不起作用,java,android,android-studio,libgdx,Java,Android,Android Studio,Libgdx,我正在使用一个应用程序,图形效果很好,直到我切换到肖像模式。现在,图形没有按照我想要的方式调整大小,触摸坐标也不是它们应该位于的位置(像以前一样)。我应该改变什么来正确调整图像和所有内容的大小 public class MainMenu implements Screen { public MainMenu(){ } @Override public void render(float delta) { Gdx.gl.glClearColor(0, 0, 0
public class MainMenu implements Screen {
public MainMenu(){
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.setColor(bakgrund.getColor());
bakgrund.draw(batch);
bakgrund.setSize(1100,600);
batch.end();
stage.act(delta);
stage.draw();
tweenManager.update(delta);
}
@Override
public void resize(int width, int height) {
table.invalidateHierarchy();
behindTable.invalidateHierarchy();
batch.getProjectionMatrix().setToOrtho2D(0, 0, width, height);
viewport.update(width, height, true);
}
@Override
public void show() {
stage = new Stage();
leaf = new Sprite(new Texture("leaf.png"));
Image leaf2 = new Image(new SpriteDrawable(leaf));
bakgrund1 = new Sprite(new Texture("quizchampionsnew.jpg"));
Image bakgrund11 = new Image(new SpriteDrawable(bakgrund1));
batch = new SpriteBatch();
bakgrund = new Sprite(new Texture("vit.jpg"));
camera = new OrthographicCamera();
viewport = new ExtendViewport(800, 600, camera);
stage.getHeight();
stage.getWidth();
Gdx.input.setInputProcessor((stage));
behindTable = new Table();
behindTable.setFillParent(true);
table = new Table();
table.setFillParent(true);
Gdx.app.setLogLevel(Application.LOG_DEBUG);
SmartFontGenerator fontGen = new SmartFontGenerator();
FileHandle exoFile = Gdx.files.internal("font/Merienda-Regular.ttf");
BitmapFont fontSmall = fontGen.createFont(exoFile, "exo-small", 24);
BitmapFont fontMedium = fontGen.createFont(exoFile, "exo-medium", 48);
BitmapFont fontLarge = fontGen.createFont(exoFile, "exo-large", 64);
Label.LabelStyle smallStyle = new Label.LabelStyle();
smallStyle.font = fontSmall;
Label.LabelStyle mediumStyle = new Label.LabelStyle();
mediumStyle.font = fontMedium;
Label.LabelStyle largeStyle = new Label.LabelStyle();
largeStyle.font = fontLarge;
menuButton = new Sprite(new Texture("back.png"));
menuButton1 = new Image(new SpriteDrawable(menuButton));
menuButton1.setPosition(4400, 353);
menuButton1.setScaleX(0.3f);
menuButton1.setScaleY(0.3f);
compButton = new Sprite(new Texture("back.png"));
compButton.setColor(0,0,0,0);
compButton1 = new Image(new SpriteDrawable(compButton));
compButton1.setPosition(340, 255);
compButton1.setScaleX(0.7f);
compButton1.setScaleY(0.465f);
itemshopButton = new Sprite(new Texture("back.png"));
itemshopButton.setColor(0,0,0,0);
itemshopButton1 = new Image(new SpriteDrawable(itemshopButton));
itemshopButton1.setPosition(340, 142);
itemshopButton1.setScaleX(0.7f);
itemshopButton1.setScaleY(0.465f);
stage.setViewport(viewport);
tweenManager = new TweenManager();
Tween.registerAccessor(Actor.class, new ActorAccessor());
behindTable.add(bakgrund11).center().row();
stage.addActor(behindTable);
stage.addActor(table);
stage.addActor(menuButton1);
stage.addActor(compButton1);
stage.addActor(itemshopButton1);
menuButton1.addListener(new ClickListener() {
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
System.out.println("MainMenu");
backgroundMusic.pause();
facebookApi.signIn();
// ((Game) Gdx.app.getApplicationListener()).setScreen(new QuizPlay());
return false;
}
});
compButton1.addListener(new ClickListener() {
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
System.out.println("MainMenu");
backgroundMusic.pause();
((Game) Gdx.app.getApplicationListener()).setScreen(new PlayMenu());
return false;
}
});
itemshopButton1.addListener(new ClickListener() {
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
System.out.println("MainMenu");
backgroundMusic.pause();
((Game) Gdx.app.getApplicationListener()).setScreen(new QuizShop());
return false;
}
});
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
stage.dispose();
batch.dispose();
bakgrund.getTexture().dispose();
backgroundMusic.dispose();
}
}
现在的情况如何:
按照这里的示例进行:-它正在工作。在Stage的构造函数中设置视口,也许这就是所需的全部内容。将视口添加到Stage:
Stage=newstage(Viewport)代码>