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,它当前是什么值?