2012-11-02 31 views
8

Oyunumda bazı UI oluşturmak için libgdx kütüphanesinde scene2d kullanıyorum.Libgdx'in Tablosu ölçek işlemini kabul etmiyor mu?

Tablo kullandım ve kullanıcı bir düğmeye dokunarak anlam ifade ettiğinde bazı ölçekleme işlemi yapmak istiyorum.

Grup gibi başka bir "Aktör" türünü kullandığımda ve bunu bir ölçek eylemi uyguladığımda Tablo çalışır.

bu benim Tablo tanımı şöyledir:

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

Ve Rötuş içinde

orijinal ölçek almak için o başka bir eylem vermek:
Table table = new Table(); 
table.setSize(width, height); 
table.setPosition(x, y); 
table.setOrigin(width/2, height/2); 
table.add(new Label(...)); 
table.row(); 
... 

Ve Touchdown olay

Ben bunu bir ölçek eylemi vermek

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

Bu kodun, Resim ve Grup gibi başka Aktör türlerinde çalıştığını söylediğim gibi. Tablo için neden çalışmayan herhangi bir Fikir?

cevap

15

kendi soruya cevap vermek:

amacıyla libGdx dokümanlarına (https://code.google.com/p/libgdx/wiki/scene2dui#Rotation_and_scale) masa ölçekleme ve ayarlanmış arka plan ise dönen değil destekleri yok.

ölçeklendirip istiyoruz ve/veya aşağıda kodu gibi davranmak zorunda masayı döndürürseniz: kütüphanesinin son sürümünde

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

(0.9.8) 'setTransform' eksik gibi görünüyor ancak bunun yerine bir yan etki olarak dönüştürmeyi sağlayan setClip (true) 'diyebilirsiniz. – Nick

+1

@Nick - setTransform hala 0.9.8'in altında. Bu, Grup için bir yöntemdir http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/Group.html#setTransform%28boolean%29 – Pool

+0

Çalıştığım için, thanx! –