Libgdx Scene2d进度条从不为空

时间:2016-04-17 21:25:39

标签: java android libgdx

我现在一直在寻找帮助。最后,问题似乎比继续打猎更快。

Progress bar not empty at 0 value

在这里我们可以看到,即使在值0,进度条的旋钮仍然可见。由于玩家死了,这应该是空的。我真的很喜欢使用scene2d进度条类,任何人都有任何提示吗?

以下是进度条的代码:

healthbarTex = new Texture(Gdx.files.internal("Spritesheets/healthbar.png"));

textureBar = new TextureRegionDrawable(new TextureRegion(healthbarTex));

ProgressBar.ProgressBarStyle barStyle = new ProgressBar.ProgressBarStyle(skin.newDrawable("white", Color.DARK_GRAY), textureBar);

barStyle.knobBefore = barStyle.knob;

barStyle.background = skin.newDrawable("white", Color.BLACK);

bar = new ProgressBar(0, 100, .5f, false, barStyle);

//Animate duration is how slow the bar moves when updated

bar.setAnimateDuration(1);

bar.setWidth(100);

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,因为进度条只是一个滑块,它将条形图设置为0.我解决它的方法是在图像编辑器中创建一个完整的healthbar.png(相同尺寸)副本但是制作这是一个透明的空白png

invisHealthbarTex = new Texture(Gdx.files.internal("Spritesheets/invishealthbar.png"));

invisTextureBar = new TextureRegionDrawable(new TextureRegion(invisHealthbarTex));

然后,每当您更新条形图进度时,如果getValue()为0,请设置bar.getStyle().knob = invisTextureBar,否则将其设置为textureBar

onUpdate(float val)
{
    if (val == 0)
    {
        bar.getStyle().knob = invisTextureBar;
    } 
    else 
    {
        bar.getStyle().knob = textureBar;
    }

    bar.getStyle().knobBefore = bar.getStyle().knob;

    bar.setValue(val);
}