2016-05-06 11 views
1

フォントをテーブルに配置して右上に展開することができないように見えるので、画面の右上にフォントを描画するソリューションは何か疑問に思う。Libgdxが画面の右上にビットマップフォントを整列する

私はこれをしようとしている:私は1920×1080の解像度を持っている私のXperia Z1上でそれをテストしていたときに

highScoreFont.draw(batch, "" + getHighScore, Gdx.graphics.getWidth() - 1070, Gdx.graphics.getHeight() - 650); 

完全にそれを揃えています。しかし、800x400のNexus Sでそれをテストすると、整列が完全に間違っているので、フォントは画面の左下に表示されます。

すべてのソリューションはありますか?

答えて

0

Scene2dを使用すると、BitmapFontを直接使用するのではなく、Labelを使用する必要があります。

BitmapFont font = ...; 
Label label = new Label(new LabelStyle(font, Color.WHITE)); 
Table table = new Table(); 
table.add(label).expand().top().right(); 

シーンはサイズがあなたのデバイスになり、あなたは、デバイスの画面サイズを心配する必要はありませんので、これは、好ましいです。

Gdx.graphics.getWidth()を使用すると、ビューポートの幅ではなくデバイスの幅が返されるため、その値を使用して要素を配置すると、デバイス間で矛盾が発生します。ハードコーディングの位置は通常は維持するのが非常に困難になりますが、このルートを使用する場合は、Gdx.graphicsから返される値ではなく、ビューポートのサイズに基づいて配置要素を調べることをおすすめします。

+0

これは完璧に機能します。右マージンの追加方法 –

関連する問題