9

我在 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));

正如我所说,此代码适用于其他类型的 Actor,例如 Image 和 Group。有什么想法为什么不适用于表格?

4

1 回答 1

16

回答我自己的问题:

为了 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);
于 2012-11-10T10:35:28.050 回答