如何向按钮添加纹理区域

时间:2014-05-25 22:21:40

标签: libgdx textures

我正在尝试将一些纹理区域添加到我计划放入滚动窗格的某些按钮上。我很确定我已经将滚动窗格部分缩小了,但我不太确定区域部分。我发现的有关滚动窗格的任何教程都使用普通文本来填充表格。到目前为止,我已经失去了如何在按钮上添加不同的纹理区域。

    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();

我是新手,所以如果有人知道一个很好的解释或例子会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

您必须为所需图像创建TextureRegionDrawable并将其放在按钮的构造函数中。所以,在你的情况下,你会做类似的事情......

Button MagnetButton = new Button(new TextureRegionDrawable(Magnet);
Button LifeButton = new Button(new TextureRegionDrawable(Life));
//etc...

这基本上做的是它将按钮样式的属性up更改为指定的Drawable。还有其他属性,例如downover,当按下按钮或鼠标按钮时,会显示指定的图像。如果您没有指定这些属性,则默认为您设置up的任何内容,这对您的情况应该足够了。

但是,如果您想要做更复杂的事情,可能需要考虑使用Skin。在您的情况下,您创建的皮肤无效,因为您使用的是.jpg文件,而Skin文件是.json文件。您可以阅读有关皮肤here的更多信息。