我在 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 事件中,我给它一个缩放 Action :
table.addAction(Actions.scaleTo(0.8f, 0.8f, 0.1f));
在 touchUp 中,我给它另一个 Action 来获得原始比例:
table.addAction(Actions.scaleTo(1f, 1f, 0.1f));
正如我所说,此代码适用于其他类型的 Actor,例如 Image 和 Group。 为什么不适用于 Table 的任何想法?
最佳答案
回答我自己的问题:
根据 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);
关于java - 为什么 Libgdx 的表不接受缩放操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201462/