2016-06-01 5 views
1

フォントのLibLDDXに問題があります。私は、3つの異なるフォントやパラメータがあります。LibGDX - 生成されたFreeTypeフォントの保存方法

parameter_score = new FreeTypeFontGenerator.FreeTypeFontParameter(); 
//Some parameters.. 
font_score = generator.generateFont(parameter_score); 

parameter_Big = new FreeTypeFontGenerator.FreeTypeFontParameter(); 
//Some parameters.. 
font_Big = generator.generateFont(parameter_Big); 

parameter_Small = new FreeTypeFontGenerator.FreeTypeFontParameter(); 
//Some parameters.. 
font_Small = generator.generateFont(parameter_Small); 

をし、フォントを生成することが非常に遅いです。アプリが起動すると、約3秒間黒い画面が表示されます。方法について聞いたことがあります。初めてフォントを生成したときに、ファイルに保存して、次回のランチ時にファイルからフォントを生成します。しかし、私はどのように保存し、読み込まれたフォントを読み込むのか知りません。誰か知っていますか?

+0

Freetypefontは、ストレージを低く維持することがいいです。なぜあなたは保存しているので、 'Hiero'で' BitmapFont'を生成するだけですか? – Madmenyo

+0

私はこれまでHieroについて聞いたことがありません。それは何ですか? – Martin

+0

あなたの希望するサイズで 'BitmapFont'を生成します。 'FreeTypeFontGenerator'と同じですが、あなたがコンパイルする前に' BitmapFont'ファイルをあなたの資産フォルダに置き、それらを使うことができます。 https://github.com/libgdx/libgdx/wiki/Hiero – Madmenyo

答えて

1

BitmapFontWriter

BitmapFontWriterはBitmapFontDataインスタンスからBMFontファイルを書き込むことができますGDX-ツールでクラスです。これにより、FreeTypeFontGeneratorを使用してフォントを生成し、フォントファイルとPNGファイルに書き込むことができます。 BitmapFontWriterには、スクリプトからより簡単に実行できる利点があり、FreeTypeFontGeneratorのシャドウとボーダーを利用できます。それ以外の場合、出力はHieroと非常によく似ていますが、異なる文字コードが同じグリフをレンダリングすると、Hieroはグリフイメージを複数回書くことを避けます。

使い方は次のようになります。

new LwjglApplication(new ApplicationAdapter() { 
    public void create() { 
     FontInfo info = new FontInfo(); 
     info.padding = new Padding(1, 1, 1, 1); 

     FreeTypeFontParameter param = new FreeTypeFontParameter(); 
     param.size = 13; 
     param.gamma = 2f; 
     param.shadowOffsetY = 1; 
     param.renderCount = 3; 
     param.shadowColor = new Color(0, 0, 0, 0.45f); 
     param.characters = Hiero.EXTENDED_CHARS; 
     param.packer = new PixmapPacker(512, 512, Format.RGBA8888, 2, false, new SkylineStrategy()); 

     FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.absolute("some-font.ttf")); 
     FreeTypeBitmapFontData data = generator.generateData(param); 

     BitmapFontWriter.writeFont(data, new String[] {"font.png"}, 
      Gdx.files.absolute("font.fnt"), info, 512, 512); 
     BitmapFontWriter.writePixmaps(param.packer.getPages(), Gdx.files.absolute("imageDir"), name); 

     System.exit(0); 
    } 
}); 

https://github.com/libgdx/libgdx/wiki/Hiero#bitmapfontwriter

+0

ファイルを生成して保存するにはどうすればいいですか?読み込みと使用方法 – iappmaker

関連する問題