2016-07-10 4 views
0

OrthographicCameraを720×1280に設定して、SpriteBatchの投影マトリックスとして組み合わせたマトリックスを設定します。 FreeTypeFontGeneratorを使ってBitmapFontを生成し、それを使ってテキストをレンダリングします。Lib GDXフォントレンダリングの問題

OrthographicCamera camera = new OrthographicCamera(); 
camera.setToOrtho(false, 720, 1280); 
SpriteBatch batch = new SpriteBatch(); 
batch.setProjectionMatrix(camera.combined); 

これが出力されます:

This is the output

あなたはフォントが非常に歪んだ見て、私はそれを修正することが分かっ唯一の方法は、私が投影行列を設定する行を削除することである見ることができるように私のSpriteBatchで。

batch.setProjectionMatrix(camera.combined); 

私はlibにGDXのgithubのページ上の問題としてこれを置くが、私はこれが原因のLib GDXのものではないと言われました。この投影行列を使用して、アプリケーションをある解像度で開発し、任意の画面に合わせて拡大できるようにする必要があります。この問題に遭遇することなくテキストをレンダリングする方法はありますか?

答えて

0

ScreenViewportを使用してピクセル完全投影を使用します。次に、Tableを使用して、ラベルを含めてGUIをレイアウトします。この方法で複数のアスペクト比をサポートしたり、アスペクト比に応じて異なるレイアウトを使用することもできます。

広範囲の解像度をサポートしたい場合は、解像度に応じて異なるアセットを提供する必要があります。ファイルのサイズに応じて、異なるbuild flavorsを使用するか、ResolutionFileHandleResolverを使用します。または、freetype extensionを使用してデバイス用の正しいフォントを生成することができますが、パフォーマンスに影響を与える可能性のある追加のレンダリングが発生する可能性があることに注意してください。

このすべては、ご使用のGUIにのみ適用されます。あなたのゲームロジックでは、明らかに別のカメラを使って、それに最も合ったcoordinate system(例えばメートル)を使用します。

+0

代わりに距離フィールドフォントを使ってみましたが、hieroでフォントを生成するとすばらしいレンダリングが行われますが、いくつかの文字にはパディングの問題があります。私は複数のフォントでそれを試してみて、それらはすべて同じ問題を抱えています、あなたはその問題の修正を知っていますか? – BananyaDev

+0

おそらく、ピクセルではない完璧な投影で整数の位置を使用していますが、それはコードとフォントを見ることなく、推測するだけです。この質問の範囲を超えているので、別の質問をすることを検討したいかもしれません。 – Xoppa

関連する問題