Java libGDX进度条

Java libGDX进度条,java,libgdx,progress-bar,Java,Libgdx,Progress Bar,关于这一点,我只找到了几个话题,似乎我所有的东西都是正确的,但它不起作用 public Block(Body body, int x, int y, Player player, GameStage stage, GameScreen screen) { ... bar = progressBar(); stage.addActor(this); stage.addActor(bar); } public ProgressBar progressBar()

关于这一点,我只找到了几个话题,似乎我所有的东西都是正确的,但它不起作用

public Block(Body body, int x, int y, Player player, GameStage stage, GameScreen screen)
{
    ...

    bar = progressBar();

    stage.addActor(this);
    stage.addActor(bar);
}

public ProgressBar progressBar()
{
    ProgressBar.ProgressBarStyle barStyle;
    TextureRegionDrawable textureBar;
    Skin skin = new Skin();

    Pixmap pixmap = new Pixmap(10, 10, Pixmap.Format.RGBA8888);
    pixmap.setColor(Color.WHITE);
    pixmap.fill();

    skin.add("white", new Texture(pixmap));
    textureBar = new TextureRegionDrawable(new TextureRegion(new Texture("bar.png")));
    barStyle = new ProgressBar.ProgressBarStyle(skin.newDrawable("white", Color.DARK_GRAY), textureBar);
    barStyle.knobBefore = barStyle.knob;

    bar = new ProgressBar(0f, maxHitPoints, maxHitPoints/30, false, barStyle);
    bar.setPosition(this.x, this.y);
    bar.setSize(20, 5);
    bar.setAnimateDuration(2);

    return bar;
}

public void draw(Batch batch, float parentAlpha)
{
    super.draw(batch, parentAlpha);

    batch.setColor(blockColor);
    batch.draw(region, this.getX(), this.getY());

    batch.setColor(Color.WHITE);
    bar.setValue(hitPoints);

}
stage.act和stage.draw在其他地方调用,但正在调用

我得到了一个坚实的酒吧,但我没有尝试导致它填补/取消填补


我想我一定错过了一些愚蠢的事情,但我一辈子都找不到什么。

到底是什么不起作用?哈!是的,这可能是一件好事,哎呀,我得到了一个实心条,但我尝试的任何东西都不会导致它填充/取消填充。您是否尝试过调整正在绘制的
区域的大小?因此,在调用批处理.draw(region,this.getX(),this.getY())
之前,尝试类似于
region.setSize(w,h)
的方法,只需根据需要调整宽度和高度。
maxHitPoints
是int还是float,它当前是什么值?