我在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。 任何想法为什么不适用于表?
答案 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);