为什么Libgdx的表不接受规模行动?

时间:2012-11-02 19:01:25

标签: java libgdx tablelayout scene2d

我在libgdx库中使用scene2d在我的游戏中创建一些UI。

我使用了一个表格,当用户触摸按钮触摸感觉时,我想采取一些缩放操作。

当我使用任何其他“Actor”类型(如Group)并给它进行缩放操作时,它可以工作但不是Table。

这是我的表定义:

Table table = new Table();
table.setSize(width, height);
table.setPosition(x, y);
table.setOrigin(width/2, height/2);
table.add(new Label(...));
table.row();
...

在我的touchDown事件中,我给它一个缩放动作:

table.addAction(Actions.scaleTo(0.8f, 0.8f, 0.1f));

在touchUp中,我给它另一个动作来获得原始比例:

table.addAction(Actions.scaleTo(1f, 1f, 0.1f));

正如我所说,这段代码适用于其他类型的Actors,如Image和Group。 任何想法为什么不适用于表?

1 个答案:

答案 0 :(得分:15)

回答我自己的问题:

为了libGdx的文档(https://code.google.com/p/libgdx/wiki/scene2dui#Rotation_and_scale),如果设置了背景,表不支持缩放和旋转。

如果我们想缩放和/或旋转表格,我们必须表现得像下面的代码:

TextButton button = new TextButton("Text Button", skin);
Table wrapper = new Table();
wrapper.add(button);
wrapper.setTransform(true);
wrapper.setOrigin(wrapper.getPrefWidth() / 2, wrapper.getPrefHeight() / 2);
wrapper.setRotation(45);
wrapper.setScaleX(1.5f);