Tag 17 – True Type Fonts

veröffentlicht am: 17. Dezember 2012

day17Wenn man sehr oft die selbe Schriftart, nur in verschiedenen Größen und ohne Effekte (wie Farbverläufe) nutzen will, ist es nervig, diese immer mit Hiero oder einem anderen Tool zu erstellen.
libgdx hat die Erweiterung gdx-freetype dafür.

Um diese Erweiterung in das Projekt einzubinden, muss man in den libgdx/extensions Ordner gehen und folgende Dateien kopieren:

armeabi/libgdx-freetype.so -> testgame-android/libs/ameabi/ 
armeabi-v7a/libgdx-freetype.so -> testgame-android/libs/ameabi-v7a/ 
gdx-freetype.jar -> testgame/libs/   -> testgame-android/libgdx
gdx-freetype-natives.jar -> testgame-desktop/libs/ 

Über Properties -> Java Build Path -> Libraries -> Add JARs… fügt man nun die Jar-Dateien dem Desktop-Projekt hinzu. (die gdx-freetype.jar muss man auch an das android-projekt linken [Häckchen im Order&Export Tab ist wichtig!)

Nun packt man einfach die ttf-Dateien der Schriften, die man „on-the-fly“ generieren will in einen assets-Unterordner. (ich nutze eine freie Schriftart, die ich bei dafont.com gefunden habe)

Mit einem FreeTypeFontGenerator kann man sich die BitmapFonts nun generieren:

FreeTypeFontGenerator generator=new FreeTypeFontGenerator(Gdx.files.internal("font/RawengulkSans.ttf"));
font40=generator.generateFont(40);
font20=generator.generateFont(20);
font10=generator.generateFont(10);
generator.dispose();

// [...]
font40.dispose();
font20.dispose();
font10.dispose();

Wichtig ist hierbei, dass man den generator an sich disposen sollte, wenn man alle Schriften mit dieser Schriftart generiert hat. In dispose() wirft man dann ganz normal die generierten Schriften weg.

ttf

geposted in libgdx

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.