如何在LibGDX中使ProgressBar工作?

adr*_*ubk 10 java libgdx progress-bar scene2d

我试图了解如何在LibGDX中使用ProgressBar.

我创建了酒吧,但我不知道如何让它成功.我想复制旋钮,以便在60秒内填充条形图(背景线).我知道如何管理时间,但ProgressBar类中没有方法用旋钮填充栏.至少,我还没有看到它(或者我不明白怎么样).这是我的代码:

ProgressBar的代码:

skin = new Skin();
Pixmap pixmap = new Pixmap(10, 10, Format.RGBA8888);
pixmap.setColor(Color.WHITE);
pixmap.fill();
skin.add("white", new Texture(pixmap));

textureBar = new TextureRegionDrawable(new TextureRegion(new Texture(Gdx.files.internal("barGreen_horizontalMid.png"))));
barStyle = new ProgressBarStyle(skin.newDrawable("white", Color.DARK_GRAY), textureBar);
bar = new ProgressBar(0, 10, 0.5f, false, barStyle);
bar.setPosition(10, 10);
bar.setSize(290, bar.getPrefHeight());
bar.setAnimateDuration(2);
stage.addActor(bar);
Run Code Online (Sandbox Code Playgroud)

我知道我可以用这个方法移动旋钮setValue(float).但我想要的是用旋钮的纹理填充条形.这是一个酒吧的截图和旋钮.

在此输入图像描述

任何人都可以帮我理解这个吗?提前致谢.

小智 16

我遇到了同样的问题,终于找到了.

您必须为knobBefore属性设置样式才能达到您想要的效果.试试这个:

barStyle = new ProgressBarStyle(skin.newDrawable("white", Color.DARK_GRAY), textureBar);
barStyle.knobBefore = barStyle.knob;
bar = new ProgressBar(0, 10, 0.5f, false, barStyle);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Aca*_*arX 1

尝试使用 setValue(float value) 函数。在此之前还要设置步长和最小/最大值。