9

ゲームでUIを作成するために、libgdxライブラリのscene2dを使用しています。

私はテーブルを使用しましたが、ユーザーがボタンに触れたときに、ボタンに触れる意味を理解するためにスケーリングアクションを実行したいと思います。

グループのような他の「アクター」タイプを使用し、それにスケールアクションを与えると、それは機能しますが、テーブルは機能しません。

これは私のテーブル定義です:

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

私が言ったように、このコードは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 に答える