我在将三个方块放在正确的位置时遇到问题,这可能是第四次尝试这样做,我尝试观看指南,但它们都是无望的并且没有解释任何内容,并且 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();
}
}
您可以尝试将内部
Table
添加到第一行的第二列中,然后将两个较小的 Image
添加为行。
在上面的示例中,我在行中添加了一些填充以使其更清晰,但没有它们也能正常工作。
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);