2012-03-12 10 views
14

私はテキストにBitmapFonts、LabelStyles、およびLabelsを使用しています。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を作成する必要があります。

Labelは、libgdxソースコードを確認してから、LabelStyleのBitmapFontへの参照を使用し、内部で使用されているBitmapFontCacheに渡します。どこでもディープコピーは作成されないので、LabelStyleを作成した同じBitmapFontをすべて使用しています。

+0

私はそれが最善の選択肢になると思う:/それはbitmapfonts u.uを作成する多くの時間を消費するものの、:) –

+0

そのlabel.setScale()は無益です。私はまた、これは最善の解決策だと思っていますが、それは醜いです。共有してくれてありがとう。 – Don

13

(これは古い質問ですので)私はlibgdx 0.9.8を使用していますし、私のようなラベル作成時:

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

を私はちょうどそのラベルのフォントサイズを変更することができます

lblA.setFontScale(3); 

これは、同じ方法で作成された他のラベルには影響しません。私は自分のラベルの一部をフォントスケール(2)に設定しましたが、それはOKです((3)の影響を受けません)。しかし、私は自分のラベルをスタイリングすることが「独立」ではないことを知っています。彼らは独自のLabelStyleを割り当てておく必要があります。そうしないと、あなたが述べている動作が得られます。

+0

libGDX 1.5.6では、 'setFontScale(float)'を使うと、ラベルが同じ 'LabelStyle'を共有していても、ラベルに個別に影響します。 –

+0

@JamesSkempすべてをスケールアップするためのグローバル設定のようなものがありますか?すべてが電話(ピクセル密度がもっと)で小さくなるように描かれていますが、これはまた、フォントを2倍または3倍大きく描画してテクスチャ空間を節約できることを意味します。 – Madmenyo

+0

良い質問@MennoGouw - 私はわかりません:(もし私が私だったら、何らかのグローバル関数または 'LabelStyle'を作成すると思います。 –

関連する問題