我现在一直在寻找帮助。最后,问题似乎比继续打猎更快。
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);
答案 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);
}