java - 为什么 Libgdx 的表不接受缩放操作?

标签 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 事件中,我给它一个缩放 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/

相关文章:

java - 如何解决元素类型 "application"的内容不完整,它必须匹配 "(icon?,display-name,description?,module+,security-role*)"。?

java - 2D渲染颜色问题

java - 使用 Apache POI 读取 xlsx 文件时出现异常(org.apache.poi.openxml4j.exception - 无内容类型 [M1.13])?

java - 具有嵌套在对象中的类型属性的 Jackson 多态反序列化

ios - RoboVM:缺少签名身份

java - 如何在动态生成的表中获取 TextView 的文本?

android - 如何创建具有 4 列的 TableLayout?

html - 表格的最小高度而不影响 Firefox 中的 thead 和 tbody

java - Servlet 和映射名称

java - 开始拖动时 Libgdx 拖放崩溃