2012-11-02 12 views
8

Ich verwende scene2d in Libgdx Bibliothek für einige UI in meinem Spiel zu schaffen.Warum Libgdx-Tabelle keine Skalierung akzeptiert?

habe ich eine Tabelle und ich möchte einige Skalierung, Maßnahmen ergreifen, wenn der Benutzer eine Taste berühren Sinn machen berührt.

Wenn ich andere "Actor" -Typen wie Group verwendet habe und es eine Skalierung Aktion gibt funktioniert es aber nicht Tabelle.

dies meine Tabellendefinition ist:

Table table = new Table(); 
table.setSize(width, height); 
table.setPosition(x, y); 
table.setOrigin(width/2, height/2); 
table.add(new Label(...)); 
table.row(); 
... 

Und in meinem Landungs ​​Fall gebe ich ihm eine Aktion Skala:

table.addAction(Actions.scaleTo(0.8f, 0.8f, 0.1f)); 

Und in Touchup Ich gebe ihm eine andere Aktion Originalmaßstab zu erhalten:

Wie gesagt, dieser Code funktioniert für andere Arten von Akteuren wie Bild und Gruppe. Irgendwelche Ideen, warum funktioniert nicht für Tabelle?

Antwort

15

Beantwortung auf meine eigene Frage:

Um in der Dokumentation des Libgdx (https://code.google.com/p/libgdx/wiki/scene2dui#Rotation_and_scale) Tabelle nicht unterstützt Skalieren und Drehen, wenn es Hintergrund ist festgelegt wurde.

Wenn wir wollen, skalieren und/oder drehen Sie die Tabelle, die wir unten wie der Code zu verhalten haben:

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

In der neuesten Version der Bibliothek (0.9.8) 'setTransform' zu fehlen scheint, Sie können stattdessen 'setClip (true)' aufrufen, was das Umwandeln als Nebeneffekt ermöglicht. – Nick

+1

@Nick - SetTransform ist immer noch unter 0.9.8. Es ist eine Methode der 'Gruppe' http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/Group.html#setTransform%28boolean%29 – Pool

+0

Arbeitete für mich, danke! –