2012-03-12 80 views
14

我正在爲我的文本使用BitmapFonts,LabelStyles和標籤。在libgdx中使用具有不同大小的相同字體

我要調整一些標籤,所以我用這個:

fontType.scale(-.6f); 

LabelStyle style = new LabelStyle(fontType, Color.WHITE); 

titleLabel = new Label("Points", style); 
titleLabel.setColor(Color.RED); 
titleLabel.x = 260; 
titleLabel.y = 310; 

但是,當我想調整其他標籤,所有包含的字體大小調整標籤(我創建了一個新的LabelStyle)。所以我調整標籤而不是字體,但是這並不能解決問題,因爲它不會調整標籤大小,任何想法?

回答

14

如果要獨立縮放它們,您必須爲每個標籤(或多組標籤)創建單獨的BitmapFonts和LabelStyle。

從檢查libgdx源代碼中,Label使用來自LabelStyle的對BitmapFont的引用,並將它傳遞給內部使用的BitmapFontCache;任何點都不會進行深層複製,因此它們都使用您創建LabelStyle時使用的相同BitmapFont。

+0

我認爲這將是最好的選擇:/雖然它消耗了很多時間創建位圖字體u.u謝謝:) – 2012-03-15 16:34:44

+0

一個恥辱,label.setScale()是無用的。我也認爲這是最好的解決方案,雖然它很醜。感謝分享。 – Don 2014-10-08 13:34:48

13

我使用libgdx 0.9.8(因爲這是一個老問題),當我創建了一個標籤,因爲這樣:

lblA = new Label("A", skinA); 

我可以調整隻是標籤的字體:

lblA.setFontScale(3); 

這不會影響我創建的其他標籤以相同方式創建。我已經將一些標籤設置爲字體比例(2),並且這些都是好的(不受(3)的影響)。但是,我發現我的標籤造型不像「獨立」。他們需要分配自己的LabelStyle,否則你會得到你所說的行爲。

+0

從libGDX 1.5.6(如果不早)開始,使用'setFontScale(float)'單獨影響標籤,即使它們共享相同的'LabelStyle'。 – 2015-04-26 16:21:03

+0

@JamesSkemp是否有像全局設置的東西來擴展一切?一切都在手機上畫得如此之小(像素密度更高),但這也意味着我可以通過繪製字體2或甚至3倍大並節省紋理空間而逃脫。 – Madmenyo 2015-06-05 21:14:50

+0

好問題@MennoGouw - 恐怕我不確定:(如果是我,我想我會創建某種全局函數或'LabelStyle'。 – 2015-06-09 13:12:03

相關問題