scene2d ui - 如何制作网格/表格?

时间:2014-02-04 17:20:20

标签: java libgdx scene2d

我正在尝试为我的游戏制作一个库存,为此我需要制作一个网格 我试图用表格完成这个 -

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

我应该从哪里开始? 我希望我的网格/库存看起来与此类似 - enter image description here

2 个答案:

答案 0 :(得分:3)

我认为最好的方法是创建Actors数组(你可以决定你想要一个Image按钮等类型的actor),然后循环遍历数组并将actor添加到表中。

您可以在运行时计算演员的宽度和高度,例如,您想要填满整个屏幕,并且您知道水平和垂直方向需要多少个按钮,然后:

int actorWidth = Gdx.graphics.getWidth() / rowActors;
int actorHeight = Gdx.graphics.getHeight() /  columnActors;
Actor[] actors = new Actor[rowActors * columnActors];

现在用你想要的任何类型的Actor(图像,按钮等)填充数组,并遍历数组并将其添加到表中,如下所示:

for (int i = 0; i < rowActors; i++){
  for (int j = 0; j < columnActors; j++){
    Actor actor = actors[(i * columnActors) + j];
    table.add(actor).width(actorWidth).height(actorHeight);
   }
   table.row();
}

这应该创建一个占据整个屏幕的演员网格。

答案 1 :(得分:0)

这是一个很好的起点,https://github.com/EsotericSoftware/tablelayout。此外,如果您主要使用屏幕区域/像素,您可能需要将场景坐标设置为像素(或者如果要自动缩放,则将像素固定为像素),在调整大小方法(缩放1: 1):

@Override public void resize(int width, int height) {
    ...
    stage.setViewport(width, height,
                      false, 0, 0, width, height);
}