У меня проблема с масштабированием изображений, у каждого устройства есть разное разрешение экрана, и я не могу понять, как они масштабируются в платформе Libgdx, , например, сегодня я сделал небольшую игру для андроид и проблема, что я облицовка .. Размер Libgdx Texture Android
offcurse мы можем масштабировать их вниз, но это не правильный путь, потому что если кто-то есть таблетка Butttons будет соответствовать совершенной, и в libgdx, насколько я знаю, что я не могу использовать макеты sw600dp, большие, xlarge и т. д. ... как мы можем масштабировать их в зависимости от ширины и высоты экрана.
stage = new Stage();
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
skin = new Skin();
buttonAtlas = new TextureAtlas(Gdx.files.internal("data/Spritesheetbuttons.pack"));
skin.addRegions(buttonAtlas);
Table table = new Table();
table.setBounds(0,0,buttonAtlas.getRegions().get(0).getRegionWidth()*2 , buttonAtlas.getRegions().get(0).getRegionHeight());
textButtonStyle = new TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("left");
textButtonStyle.down = skin.getDrawable("left");
textButtonStyle.checked = skin.getDrawable("left");
buttonLeft = new TextButton("Button1", textButtonStyle);
table.add(buttonLeft);
textButtonStyle = new TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("right");
textButtonStyle.down = skin.getDrawable("right");
textButtonStyle.checked = skin.getDrawable("right");
buttonRight = new TextButton("Button1", textButtonStyle);
table.add(buttonRight);
stage.addActor(table);
table = new Table();
table.setBounds(Game.SCREEN_WIDTH-buttonAtlas.getRegions().get(0).getRegionWidth(),0,buttonAtlas.getRegions().get(0).getRegionWidth() , buttonAtlas.getRegions().get(0).getRegionHeight()*2);
textButtonStyle = new TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("up");
textButtonStyle.down = skin.getDrawable("up");
textButtonStyle.checked = skin.getDrawable("up");
buttonUp = new TextButton("Button1", textButtonStyle);
table.add(buttonUp);
table.row();
textButtonStyle = new TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("down");
textButtonStyle.down = skin.getDrawable("down");
textButtonStyle.checked = skin.getDrawable("down");
buttonDown = new TextButton("Button1", textButtonStyle);
table.add(buttonDown);
stage.addActor(table);
buttonRight.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
}
});
buttonLeft.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
}
});
buttonDown.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
// TODO Auto-generated method stub
return false;
}
});
buttonUp.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
// TODO Auto-generated method stub
return false;
}
});
Thnks за Ваш ответ это было очень полезно, но у меня есть один problem..i имеет ширину экрана, высоту 100 метров и VIEWPORT_WIDTH, VIEWPORT_HEIGHT 30 метра и я не хочу, независимо от того, что устройство размера экрана, чтобы позволить пользователь видит только то, что конкретное окно просмотра не больше не меньше .. пока мы хорошо, но после масштаба все OrthogonalTiledMapRenderer будет деформироваться. –
Похоже, вы хотите использовать другой видовой экран. В этом ответе я использую фактический размер экрана, поэтому он будет иметь правильное соотношение сторон. Если вам нужно другое соотношение сторон, вам нужно решить, как справиться с этой разницей. Это растягивается, в то время как другие используют различные методы для поддержания соотношения сторон. Проверьте ссылку в ответе. – Xoppa