Libgdx 如何将纹理区域添加到按钮

Libgdx 如何将纹理区域添加到按钮,libgdx,textures,Libgdx,Textures,我正在尝试将一些纹理区域添加到我计划放在滚动窗格中的一些按钮中。我很确定我已经把滚动窗格部分搞定了,但是我不太确定区域部分。我找到的任何关于滚动窗格的教程都使用普通文本填充表格。这是我到目前为止对如何将不同的纹理区域添加到按钮上所失去的知识 TextureAtlas atlas = new TextureAtlas("data/StoreAtlas.pack"); uiskin = new Skin(Gdx.files.internal("SkinLocation.jpg"),

我正在尝试将一些纹理区域添加到我计划放在滚动窗格中的一些按钮中。我很确定我已经把滚动窗格部分搞定了,但是我不太确定区域部分。我找到的任何关于滚动窗格的教程都使用普通文本填充表格。这是我到目前为止对如何将不同的纹理区域添加到按钮上所失去的知识

    TextureAtlas atlas = new TextureAtlas("data/StoreAtlas.pack");
    uiskin = new Skin(Gdx.files.internal("SkinLocation.jpg"), atlas);
    uiskin.addRegions(atlas);

    TextureRegion Magnet = uiskin.getRegion("Magnet");
    TextureRegion Life = uiskin.getRegion("Life");
    TextureRegion BonusCoins = uiskin.getRegion("BonusCoins");
    TextureRegion Ice = uiskin.getRegion("Ice");
    TextureRegion LavaBombs = uiskin.getRegion("LavaBombs");
    TextureRegion Foreground = uiskin.getRegion("Foreground");
    TextureRegion Background = uiskin.getRegion("BackGround");

    Button MagnetButton = new Button();
    Button LifeButton = new Button();
    Button BounusCoinsButton = new Button();
    Button IceButton = new Button();
    Button LavaBombsButton = new Button();

我是新手,所以如果有人知道一个好的解释或例子,那就太棒了。谢谢。

您必须为所需图像创建一个
TextureRegionRavable
,并将其放置在按钮的构造函数中。所以,在你的情况下,你会做一些像

Button MagnetButton = new Button(new TextureRegionDrawable(Magnet);
Button LifeButton = new Button(new TextureRegionDrawable(Life));
//etc...
这实际上是将按钮样式的属性
up
更改为指定的
Drawable
。还有其他属性,如按下按钮或鼠标悬停按钮时显示指定图像的
down
over
。如果您没有指定这些属性,它默认为您设置的任何属性,这对于您的情况应该足够了

但是,如果你想做任何更复杂的事情,你可能想考虑使用皮肤。在您的情况下,您创建的皮肤是无效的,因为您使用的是.jpg文件,而皮肤文件是.json文件。你可以阅读更多关于皮肤的内容