gpt4 book ai didi

java - Libgdx Scene2d 进度条永远不会为空

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:38 29 4
gpt4 key购买 nike

我已经四处寻找帮助有一段时间了。最后,询问似乎比继续寻找更快。

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

最佳答案

我遇到了完全相同的问题,因为进度条只是一个 slider ,它将进度条置于 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);
}

关于java - Libgdx Scene2d 进度条永远不会为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36682421/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com