LibGDX如何使按钮的大小与图像无关

时间:2018-11-12 17:23:50

标签: libgdx

在LibGDX中将图像添加到TextButton时,如何将按钮与图像内容进行匹配?目前,当我设置大小时,图像会按比例缩小以适合按钮,从而在按钮边缘和图像内容之间留出很大的距离(请参阅从绿色调试边框到按钮图像边缘的距离)。

我希望能够设置按钮的大小以匹配图像的内容,以便忽略图像周围的空白区域。我可以从图像中裁剪出空白区域,但是由于阴影的缘故,图像会偏离中心,因此想避免这种情况。

enter image description here

上图显示了游戏中显示的按键,包括绿色的调试按钮边框。底部图像显示源图像,其中有空白。

TextButton.TextButtonStyle buttonStyle = new TextButton.TextButtonStyle();
buttonStyle.font = FontLoader.uiFont;
buttonStyle.up = new SpriteDrawable(new Sprite(assetManager.get(UISpriteLoader.SPRITE_UI_TAMING_BUTTON_BASE, Texture.class)));
buttonStyle.down = new SpriteDrawable(new Sprite(assetManager.get(UISpriteLoader.SPRITE_UI_TAMING_BUTTON_PRESSED, Texture.class)));
buttonStyle.over = new SpriteDrawable(new Sprite(assetManager.get(UISpriteLoader.SPRITE_UI_TAMING_BUTTON_HOVER, Texture.class)));
tameButton = new TextButton("Tame", buttonStyle);
tameButton.setPosition(1470, 1080-330-80);
tameButton.setSize(250, 80);
stage.addActor(tameButton);

1 个答案:

答案 0 :(得分:0)

对图像使用Ninepatch。它将缩放以填充开箱即用的按钮。

我建议您同时使用Skin Composer来制作Ninepatches和创建Scene2d外观,这样就不必在代码中创建样式。