libgdx scene2d按钮拉伸

时间:2017-04-18 19:29:36

标签: java libgdx scene2d

我试图为我的游戏制作控件,总共只有四个按钮,2个右下角,1个左下角,1个右上角,但皮肤非常拉伸并且表现得很奇怪。我尝试过libgdx skin repository不同的皮肤,它们都表现不同,有些是向右伸展的,有些是大的。这是我的代码:

table = new Table();

boostButtonSkin = new Skin(Gdx.files.internal("star-soldier/skin/star-soldier-ui.json"));

boostButton = new ImageButton(boostButtonSkin);


table.setWidth(stage.getCamera().viewportWidth);
table.setHeight(stage.getCamera().viewportHeight);

table.setDebug(true);
table.bottom().left();
table.add(boostButton).width(2).height(2);
stage.addActor(table);

视口宽度和高度分别为40,24。

2 个答案:

答案 0 :(得分:0)

这听起来像你忘了调整大小。您的调整大小方法应如下所示。

@Override
public void resize(int width, int height) {
    stage.getViewport().update(width, height);
}

答案 1 :(得分:0)

LibGDX中的UI小部件实际上是为ScreenViewport设计的,因为UI类型的东西通常是丑陋的,如果没有绘制像素完美。但是你可以通过在纹理上设置三线性过滤,关闭支持它的小部件的舍入,关闭"使用整数位置"来使用其他类型的视口。任何字体。

但即便如此,您还需要使用相当大的虚拟视口尺寸(每个维度中有几百个单位)。您的单位太小,无法正确绘制NinePatch。

除此之外,看起来您正在根据相机设置表格大小,但不保证在您设置小部件时相机的大小正确。不要设置它的大小,而是调用table.setFillParent(true),这样它就会自动适应视口的大小。