2016-07-10 13 views
0

Ich verwende eine OrthographicCamera auf 720 von 1280 eingestellt und stellen Sie dann die kombinierte Matrix als Projektionsmatrix in meinem SpriteBatch. Ich erzeuge dann einen BitmapFont mit dem FreeTypeFontGenerator und benutze ihn zum Rendern von Text.Lib GDX Font Rendering Probleme

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

Dies ist die Ausgabe:

This is the output

Wie Sie die Schriften ich es durch das Entfernen der Leitung zu beheben gefunden sehen sehr verzerrt und die einzige Möglichkeit, sehen, wo ich die Projektionsmatrix eingestellt in meinem SpriteBatch.

batch.setProjectionMatrix(camera.combined); 

Ich habe dies als ein Problem auf der lib Github Seite GDX, aber mir wurde gesagt, dies nicht wegen der Lib GDX ist. Ich muss diese Projektionsmatrix verwenden, damit ich meine Anwendung in einer Auflösung entwickeln und skalieren kann, damit sie auf jeden Bildschirm passt. Gibt es eine Möglichkeit, Text ohne Probleme zu rendern?

Antwort

0

Verwenden Sie eine pixelgenaue Projektion, indem Sie ScreenViewport verwenden. Verwenden Sie dann Table, um Ihre GUI einschließlich ihrer Beschriftungen zu gestalten. Auf diese Weise können Sie auch mehrere Seitenverhältnisse unterstützen oder je nach Seitenverhältnis ein anderes Layout verwenden.

Wenn Sie eine breite Palette von Auflösungen unterstützen möchten, müssen Sie abhängig von der Auflösung unterschiedliche Ressourcen bereitstellen. Abhängig von der Dateigröße können Sie verschiedene build flavors verwenden oder ResolutionFileHandleResolver verwenden. Alternativ können Sie die freetype extension verwenden, um die richtige Schriftart für das Gerät zu generieren, aber beachten Sie, dass das zu zusätzlichen Renderaufrufen führen kann, die die Leistung beeinträchtigen können.

Beachten Sie, dass all dies nur für Ihre GUI gilt. Für Sie Spiellogik verwenden Sie offensichtlich die coordinate system, die am sinnvollsten ist (z. B. Meter), mit einer separaten Kamera.

+0

Ich habe versucht, Distance Field Fonts stattdessen verwenden, aber wenn ich eine Schriftart mit Hiero generieren, wird es schön, aber einige Buchstaben haben Padding-Probleme. Ich habe es mit mehreren Fonts probiert und sie alle haben das gleiche Problem, weißt du eine Lösung für dieses Problem? – BananyaDev

+0

vielleicht verwenden Sie Integer-Positionen mit einer nicht Pixel perfekten Projektion, aber das ist nur raten, ohne den Code und die Schriftart zu sehen, ist es unmöglich zu sagen. Vielleicht sollten Sie darüber nachdenken, eine andere Frage zu stellen, weil dies den Rahmen dieser Frage sprengt. – Xoppa