如何在libgdx表中绘制形状?

时间:2015-06-03 10:29:04

标签: libgdx

我想绘制图形(数学函数)之类的东西,并希望将其作为单元格插入表格中。 我尝试将shaperenderer插入表中,但它无效。 我怎么能这样做?谢谢!

我尝试使用类似的东西:

Table table = new Table();

ShapeRenderer shapeRen = new ShapeRenderer();
shapeRen.begin(ShapeType.Filled);
shapeRen.setColor(1,1,1,1);
shapeRen.rect(0,0,50,50);
shapeRen.end();

table.add(shapeRen);

我知道,这是不对的。 =) 你能帮我做点什么吗?

1 个答案:

答案 0 :(得分:1)

你不能将一个shapeRenderer添加到一个表中,因为它不是一个actor,但如果你真的想在一个表中使用它,我想你可以做类似下面的事情。

public class MyGdxGame extends ApplicationAdapter {
    Table table;
    ShapeRenderer shapeRen;
    Stage stage;

    @Override
    public void create () {
        stage = new Stage();
        table = new Table();
        table.setDebug(true);
        table.row().pad(20).size(200, 50);
        table.add();
        table.row().pad(20).size(200, 50);
        table.add();
        table.setPosition(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);

        stage.addActor(table);
        shapeRen = new ShapeRenderer();
    }

    @Override
    public void render () {
        stage.draw();
        drawShapes();
    }

    public void drawShapes() {
        shapeRen.begin(ShapeRenderer.ShapeType.Filled);
        shapeRen.setColor(1,1,1,1);
        shapeRen.rect(table.getX() - table.getPrefWidth()/2 + table.getCells().get(0).getPadLeft(),table.getY() + table.getPrefHeight()/2 - table.getCells().get(0).getPrefHeight() - table.getCells().get(0).getPadTop(),50,50);
        shapeRen.end();
    }
}

输出如下所示: Result in desktop