LibGDX – масштабированное изображение с фиксированным соотношением

В моей игре LibGDX есть стартовый экран с логотипом и несколькими кнопками. Я не могу понять, как масштабировать логотип с фиксированным соотношением, чтобы не исказить его.

Это код:

public StartScreen(int lastScore, InputListener inputListener) { super(); this.listener = inputListener; stage = new Stage(); Gdx.input.setInputProcessor(stage); Table table = new Table(); table.setFillParent(true); table.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(Gdx.files.internal("background.png"))))); Image imageLogo = new Image(); imageLogo.setDrawable(new TextureRegionDrawable(new TextureRegion(new Texture(Gdx.files.internal("title.png"))))); // Here's the problem, the image is not scaled correctly... table.add(imageLogo).center().colspan(2); table.row(); // Some Buttons table.add(button1).colspan(2).padBottom(30); table.row(); table.add(button2).padBottom(30); table.add(button3).padBottom(30); table.row(); table.add(button4).colspan(2); stage.addActor(table); //table.debug(); } 

Я узнал, что вы можете использовать это с изображениями – отлично работает!

 imageLogo.setScaling(Scaling.fit); 

Вы можете масштабировать изображение следующим образом:

 Image imageLogo = new Image(); imageLogo.setDrawable(new TextureRegionDrawable( new TextureRegion(new Texture(Gdx.files.internal("title.png"))))); // 0.9f scales to 90% of the original height and width final float heightScaleFactor = 0.9f; final float widthScaleFactor = 0.9f; imageLogo.setHeight(imageLogo.getHeight() * heightScaleFactor); imageLogo.setWidth(imageLogo.getWidth() * widthScaleFactor); 
Intereting Posts