2017-04-21 1 views
0

내가 지금까지 해왔 던 방식은 동일한 글꼴을 복사하여 다른 이름으로 저장하고 다른 매개 변수로로드하는 것입니다. 나는 LibGDX에서 응용 프로그램을 개발하고 다른 파일이 필요한 것보다 더 많은 메모리를 사용하므로 글꼴을 저장하려고합니다. 다른 매개 변수를 사용할 때마다 한 글꼴을 여러 번로드하는 방법이 있습니까?다른 매개 변수를 사용하여 TrueTypeFont를로드하는 방법은 무엇입니까? LibGDX

+0

같은 폰트를 복사하여 무엇을 의미합니까? BitmapFont'.fnt' 파일이나'.ttf' 파일을 다루고 있습니까? ? – Aryan

+0

.ttf. 다른 매개 변수가있는 글꼴을 사용하려면 기존 파일을 복사 한 후 동일한 폴더에 다른 이름으로 붙여넣고 다른 매개 변수를 사용하여로드하십시오. – vladutelu

+0

동일한 .ttf 파일을 사용하고 FontTypeParameter 특성 만 변경하여 다른 글꼴을 생성 할 수 있습니다 . – Aryan

답변

0

이 예제를 살펴보면 단순히 속성을 변경하여 다른 크기의 BitmapFont 객체 목록을 작성하고 있습니다. FreeTypeFontGenerator.FreeTypeFontParameter.

public class MainGame extends Game { 

    SpriteBatch spriteBatch; 
    BitmapFont font[]; 
    OrthographicCamera camera; 

    @Override 
    public void create() { 

     camera=new OrthographicCamera(); 
     camera.setToOrtho(false,400,640); 
     spriteBatch = new SpriteBatch(); 

     int size[]=new int[]{5,8,10,13,15,20,30,40,50,60}; 

     font=new BitmapFont[size.length]; 
     FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("BUBBLEGUM.TTF")); 
     FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter(); 

     parameter.color = Color.WHITE; 
     parameter.magFilter = Texture.TextureFilter.Linear; // used for resizing quality 
     parameter.minFilter = Texture.TextureFilter.Linear; 

     for(int i=0;i<size.length;i++){ 
      parameter.size=size[i]; 
      font[i]=generator.generateFont(parameter); 
      font[i].getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); 
      font[i].setColor(1.0f, 0.0f, 0.0f, 1.0f); 
     } 

     generator.dispose(); // Don't forget to dispose 
    } 

    @Override 
    public void render() { 

     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     Gdx.gl.glClearColor(1,1,0,1); 

     spriteBatch.setProjectionMatrix(camera.combined); 
     spriteBatch.begin(); 
     for (int i=0;i<font.length;i++) 
      font[i].draw(spriteBatch,"LIBGDX FONT",10,100+i*55); 
     spriteBatch.end(); 
    } 

    @Override 
    public void resize(int width, int height) { 
     camera.setToOrtho(false,width,height); 
    } 

    @Override 
    public void dispose() { 
     spriteBatch.dispose(); 
     for(BitmapFont bmfont:font) 
       bmfont.dispose(); 

    } 
} 

편집

https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/extensions/FreeTypeFontLoaderTest.java

+0

그래도 Asset Manager로 글꼴을로드하는 중이면 동일한 방법을 사용합니까? – vladutelu

+0

예, 할 수 있습니다. 마지막으로 비트 맵 글꼴을 사용하고 AssetManager에로드하십시오. – Aryan

+0

FreeTypeFontGenerator 대신 FreeTypeFontLoader를 사용하여 글꼴 및 매개 변수를로드하고 있습니다. 나는 그것을 바꿔야 할까? 그리고 자산 관리자에서 글꼴을로드 할 때 글꼴의 위치를 ​​묻습니다. 그래서 동일한 글꼴을 어떻게로드하겠습니까? 매개 변수가 다른 경우 어떻게로드할까요? 많은 질문을해서 죄송합니다. 매우 혼란 스럽습니다. – vladutelu

관련 문제