Java 为什么是Libgdx';s表不接受缩放操作?
我正在使用libgdx库中的scene2d在游戏中创建一些UI 我使用了一个表,我想在用户触摸时进行一些缩放操作,以使按钮触摸有意义 当我使用任何其他类型的“演员”时,比如组,并给它一个缩放动作,它可以工作,但表不能 这是我的表定义:Java 为什么是Libgdx';s表不接受缩放操作?,java,libgdx,tablelayout,scene2d,Java,Libgdx,Tablelayout,Scene2d,我正在使用libgdx库中的scene2d在游戏中创建一些UI 我使用了一个表,我想在用户触摸时进行一些缩放操作,以使按钮触摸有意义 当我使用任何其他类型的“演员”时,比如组,并给它一个缩放动作,它可以工作,但表不能 这是我的表定义: Table table = new Table(); table.setSize(width, height); table.setPosition(x, y); table.setOrigin(width/2, height/2); table.add(new
Table table = new Table();
table.setSize(width, height);
table.setPosition(x, y);
table.setOrigin(width/2, height/2);
table.add(new Label(...));
table.row();
...
在我的接地事件中,我给它一个缩放动作:
table.addAction(Actions.scaleTo(0.8f, 0.8f, 0.1f));
在润色中,我给它另一个动作来获得原始的音阶:
table.addAction(Actions.scaleTo(1f, 1f, 0.1f));
正如我所说的,这段代码适用于其他类型的角色,如图像和组。
有什么想法为什么不适用于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);
在库的最新版本(0.9.8)中,
setTransform
似乎丢失了,但您可以调用setClip(true)
,它可以将转换作为一种副作用。@Nick-setTransform仍在0.9.8下。这是一种对我有用的Group
方法,thanx!设置setTransform(true)为我固定了桌子上的刻度。医生撒谎了!他们说默认情况下这是真的,但不是我:)