LibGDX, как сделать размер кнопок независимым от изображения - PullRequest
0 голосов
/ 12 ноября 2018

При добавлении изображений в TextButton в LibGDX, как бы я соответствовал кнопке с содержимым изображения. В настоящее время, когда я устанавливаю размер, изображение масштабируется, чтобы соответствовать кнопке, которая оставляет большой промежуток между краем кнопки и содержимым изображения (см. Расстояние от зеленой границы отладки до края изображения кнопок).

Я хотел бы иметь возможность установить размер кнопки в соответствии с содержимым изображения, чтобы пустое пространство вокруг изображения игнорировалось. Я мог бы вырезать пустое пространство из изображения, но у меня было бы смещенное изображение из-за падающей тени, и поэтому я хотел бы избежать этого.

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 голосов
/ 13 ноября 2018

Используйте Ninepatch для ваших изображений.Он будет масштабироваться, чтобы заполнить кнопку из коробки.

Я рекомендую использовать Skin Composer как для создания Ninepatches, так и для создания скина Scene2d, поэтому вам не нужно создаватьваши стили в коде.

...