libgdx - 如何在舞台中添加背景图片?

12

我正在学习libgdx,但卡在一个地方。

我在我的舞台中添加了一个按钮,现在我想在舞台中添加一张图片,使得这张图片成为该按钮的背景图片,也就是说按钮应该位于图片之上。

我一直在看教程,但还没有做到。

怎样才能实现?有什么帮助吗?


顺序很重要,请先添加您的背景。 - Chase
3
只需绘制您的背景,然后绘制按钮。如果需要,您可以将背景作为“Image”actor添加到“Stage”中,或者您可以获取“Stage”的“SpriteBatch”并使用它进行绘制。 - Robert P
可能是Libgdx单个舞台中的背景和前景的重复问题。 - Necreaux
3个回答

14
唯一需要做的是在绘制“按钮”之前绘制背景。
有几种可能的方法可以实现这个目标: - 您可以将背景作为Actor的子类Image添加到Stage,并使用z-index确保其作为背景绘制。 - 您可以获取StageSpriteBatch (stage.getBatch()),并使用其中一个draw方法来绘制背景,然后调用stage.draw()
您也可以使用另一个SpriteBatch,但我不建议这样做,因为它是一个相当“沉重”的对象,在这种情况下并不必要。在调用stage.draw()之前,您需要调用用于绘制背景的SpriteBatchend()方法。

10

一个小例子:

stage.act(Gdx.graphics.getDeltaTime());

stage.getBatch().begin();
stage.getBatch().draw(background, 0, 0, WORLD_WIDTH, WORLD_HEIGHT);
stage.getBatch().end();

stage.draw();

-3

这是我用来模拟健康条的一些代码。我使用了一个 ProgressBar

    stage = new Stage();
    Texture bground = new Texture(Gdx.files.internal("pbBackground.png"));
    Table table = new Table();
    table.setFillParent(true);
    stage.addActor(table);
    font = new BitmapFont(Gdx.files.internal("gamefonts.fnt"));
    font.getData().scale(.1f);
    skin = new Skin();
    pixmap = new Pixmap(1, 1, Format.RGBA8888);
    pixmap.setColor(Color.WHITE);
    pixmap.fill();
    skin.add("white", new Texture(pixmap));
    LabelStyle lstyle = new LabelStyle();
    lstyle.font=font;
    Label mylabel = new Label("HP", lstyle);
    mylabel.setColor(Color.RED);
    mylabel.setPosition(1, 6);
    table.addActor(mylabel);
    textureBar = new TextureRegionDrawable(new TextureRegion(new Texture(Gdx.files.internal("pb.png"))));
    barStyle = new ProgressBarStyle(skin.newDrawable("white", Color.DARK_GRAY), textureBar);
    barStyle.background = new TextureRegionDrawable(new TextureRegion(bground));
    barStyle.knobBefore=barStyle.knob;
    bar = new ProgressBar(0, 10, 0.5f, false, barStyle);
    bar.setPosition(1, 1);
    bar.setValue(0);
    bar.setAnimateDuration(2);
    table.addActor(bar);

这个网站可能会帮助你更好地理解进度条。同时,也可以查看ProgressBar的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接