hi
1 - a TextureButton
is a noob node, it should not be used for something like this where you need more than one button.
for this you want a normal Button
and to create a theme.
in theme, you can set the states of the button, and for that you can use StyleBoxTexture
s.
StyleBoxTexture
is very good because it allows you to treat a texture like a 9slice and do a bunch of other things, like set “margins”, or add a shadow.
since you are using images, for different buttons I would use a theme variation for each.
2 - for cards it is better to create a card scene and change the image and text. for this use a Control and Containers.
for example, a Button as the card with a theme, then a VBoxContainer, a Label, and TextureRects.
Button (with styleboxes you can expand or set an area of the button for the children to draw on, like margins)
|->VboxContainer#clicking on all child nodes set to pass so the button can be clicked on
|->Label (title)
|->TextureRect (image)
|->HBoxContainer
|->Label
|->TextureRect (symbol)
|->Label
3 - text could be a different problem, you can’t prevent text from getting pixelated if it’s too small. the best that can be done is render it at a bigger size and then shrink it.
one thing that can be done is get a font that can be read at such small scales, like apple II, DOS or Commodore64 fonts that were originally designed to work at 16x8/16x12 character size (in pixels), but that’s the limit for a font, you can’t make it smaller and still readable.
4 - what is being pixelated is the “attack” text right? what some card games do is use images, or shorten the words so the font can be made bigger.
for example, in yougioh, attack and defense are ATK and DEF, while in heartstone and pixel games they use a hearth and a sword for attack and health.