如何正确放置方块(libgdx)

问题描述 投票:0回答:1

我在将三个方块放在正确的位置时遇到问题,这可能是第四次尝试这样做,我尝试观看指南,但它们都是无望的并且没有解释任何内容,并且 libgdx 上没有任何关于它的文字。 com

这就是它应该的样子 它是什么样子

public class Main extends ApplicationAdapter {
    private Stage stage;

    public Main(){

    }

    public Texture createTexture(Color color, int x , int y){
        Pixmap pixmap = new Pixmap(x,y, Pixmap.Format.RGBA8888);
        pixmap.setColor(color);
        pixmap.fill();

        Texture texture = new Texture(pixmap);
        pixmap.dispose();

        return texture;
    }

    @Override
    public void create() {
        stage = new Stage(new ScreenViewport());
        Gdx.input.setInputProcessor(stage);


        Table root = new Table();
        root.setFillParent(true);
        stage.addActor(root);

        Image button = new Image(createTexture(Color.ROYAL, 300,300));
        Image button2 = new Image(createTexture(Color.ROYAL, 200,100));
        Image button3 = new Image(createTexture(Color.ROYAL, 200,100));

        root.add(button);
        root.row();
        root.add(button2).width(200);
        root.add(button3).width(200);

        root.setDebug(true);
    }

    @Override
    public void render() {
        ScreenUtils.clear(0f, 0f, 0f, 1f);
        stage.act(Gdx.graphics.getDeltaTime());
        stage.draw();
    }


    @Override
    public void resize(int width, int height) {
        stage.getViewport().update(width, height);
    }

    @Override
    public void dispose() {
        stage.dispose();
    }
}

java libgdx
1个回答
0
投票

您可以尝试将内部

Table
添加到第一行的第二列中,然后将两个较小的
Image
添加为行。

libggdx table layout

在上面的示例中,我在行中添加了一些填充以使其更清晰,但没有它们也能正常工作。

    stage = new Stage(new ScreenViewport());
    Gdx.input.setInputProcessor(stage);

    Table root = new Table();
    root.setFillParent(true);
    stage.addActor(root);

    Image button = new Image(createTexture(Color.ROYAL, 300,300));
    Image button2 = new Image(createTexture(Color.ROYAL, 200,100));
    Image button3 = new Image(createTexture(Color.ROYAL, 200,100));

    root.row().pad(10);
    root.add(button);

    // This table is only there to hold the two Images on the right,
    // they get one row each.
    Table inner = new Table();
    inner.row().pad(10);
    inner.add(button2).width(200);
    inner.row().pad(10);
    inner.add(button3).width(200);

    root.add(inner);

    root.setDebug(true);
© www.soinside.com 2019 - 2024. All rights reserved.