我在libgdx中有一个表,它应该有6个按钮,分为2行。这是我的代码:
elementsTable.clear();
String[] colors = new String [6];
colors[0] = "red";
colors[1] = "orange";
colors[2] = "yellow";
colors[3] = "purple";
colors[4] = "blue";
colors[5] = "green";
String category = currentCategory.name();
category = category.substring(0, category.length()-1).toLowerCase(); //removes the last character because otherwise there would be an extra 's'
int count = 0;
for(String color : colors) {
ButtonStyle buttonStyle = new ButtonStyle();
buttonStyle.up = cellsSkin.getDrawable(category + "_" + color);
Button button = new Button(buttonStyle);
button.addListener(toolBoxListener);
button.setName(category + "_" + color);
button.setSize(toolBoxButtonSize, toolBoxButtonSize);
elementsTable.add(button).pad(toolBoxButtonPadding);
count ++;
if (count == Math.ceil((colors.length/2d))) elementsTable.row();
}
这就是填充物。我的按钮有6种不同的颜色,所以我使用颜色名称循环数组以访问皮肤以获得按钮的可绘制。这部分似乎有效,因为当我调试并查看表格时,它有6个按钮,大小合适。
然后我设置我的桌子的位置和大小并将其添加到舞台上。:
elementsTable.setSize(toolBoxWidth, 500/(float)(3*toolBoxButtonSize+6*toolBoxButtonPadding)*elementsTable.getHeight());
elementsTable.setPosition(195, 30);
stage.addActor(elementsTable);
舞台上有一套正交相机,可以很好地缩小尺寸。
然而,我得到的是:
另一个奇怪的问题是,当我在调试模式下查看表的高度和宽度时,它表示0甚至还有一些元素,它们都具有corrct大小。
任何人都可以帮助我吗?
如果您对此问题有任何疑问,请询问!我试着详细说明,但我很乐意回答你的问题。
答案 0 :(得分:1)
这似乎只是位置。 30对于Y来说太低了:
elementsTable.setPosition(195, 30);
尝试150例如:
elementsTable.setPosition(195, 150);
记住Libgdx(和OpenGL)使用的坐标系是Y在上升。