尝试从skin.json加载精灵时出错

时间:2014-04-09 15:53:04

标签: java libgdx

我正在尝试从skin.json加载libgdx中的一个简单皮肤。皮肤文件非常简单:

{        
    com.badlogic.gdx.graphics.g2d.Sprite : {
            centerImage : {

            }
        }
}

使用此代码,代码运行正常,但我得到一个空的精灵。要加载纹理并加载sprite纹理化的sprite,我得到加载纹理的异常:

{
    com.badlogic.gdx.graphics.Texture : {
        centerImageTexture : {
            file : images/crop001.png
        }
    },

    com.badlogic.gdx.graphics.g2d.Sprite : {
        centerImage : {
            texture : centerImageTexture
        }
    }
}

这是libGDX代码

 skin = new Skin(Gdx.files.internal(skinFile));

centralImage = skin.getSprite("centerImage");

我需要的是一种在不使用图集的情况下将纹理定义到皮肤文件中的方法。该文档解释了如何加载纹理:

Texture texture = skin.get("logo", Texture.class);

但我找不到定义它的方法

谢谢!

1 个答案:

答案 0 :(得分:1)

如果你想使用

Texture texture = skin.get("logo", Texture.class);

get-Method在 uiskin.atlas 中搜索,而不是在uiskin.json中搜索。应该有一个名为“logo”的条目:

logo
  rotate: false
  xy: 170, 44
  size: 100, 100
  orig: 100, 100
  offset: 0, 0
  index: -1

您可以根据需要使用此代码段。根据您的需要修改 xy 的参数(uiskin.png中TextureRegion的左上角和尺寸原点(您的尺寸) Pixel中的TextureRegion)。大小和原点应该相同。你可以采用其他参数。