글꼴 및 뷰포트 libgdx

베인

저는 현재 libgdx의 FreeTypeFontGenerator로 많은 어려움을 겪고 있습니다.

내 코드는 다음과 같습니다.

public class FontTestScreen extends ScreenAdapter {
    private static final float WORLD_HEIGHT = 100;
    private static final int FONT_SIZE = (int) (WORLD_HEIGHT/10);

    private Viewport viewport;
    private SpriteBatch batch;
    private FreeTypeFontGenerator fontGenerator;
    private BitmapFont font;

    public FontTestScreen() {
        fontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("calibri.ttf"));
        batch = new SpriteBatch();
        /* Setting the viewport */
        viewport = new ExtendViewport(0, WORLD_HEIGHT);
        /* BitmapFont */
        FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
        parameter.size = FONT_SIZE;
        parameter.color = Color.BLACK;
        font = fontGenerator.generateFont(parameter);
    }

    @Override
    public void resize(int width, int height) {
        viewport.update(width, height, true);
        batch.setProjectionMatrix(viewport.getCamera().combined);
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        batch.begin();
        font.draw(batch, "Hello", WORLD_HEIGHT/2, WORLD_HEIGHT/2);
        batch.end();
    }

}

내 문제는 다음과 같습니다. 뷰포트 철학을 올바르게 이해했다면 픽셀 개념을 제거해야합니다. 내 세계에 단위에 대한 미터가 있다면 픽셀로 생각하는 대신 뷰포트를 사용하여 세계 좌표를 설정해야합니다. 내 예에서 내 세계는 100 미터 높이 일 것입니다. 크기가 10 미터 인 텍스트를 인쇄하고 싶습니다. 문제는 텍스트가 실제로 픽셀 화되어 읽을 수 없다는 것입니다. world_height를 10 대신 1000으로 변경하고 10 대신 100 크기로 텍스트를 인쇄하려고하면 텍스트가 더 이상 픽셀 화되지 않습니다. 이 동작은 텍스처에서는 발생하지 않습니다! 비율 만 중요해야 할 때 왜 그 문제로 고투해야합니까?

내가 찾은 더 논리적 인 대답은 내가 잘못하고 있다는 것입니다. 따라서 올바른 글꼴 처리 방법을 이해하도록 도와주세요.

Tenfour04

뷰포트는 미터 (또는 기타) 단위입니다. 그러나 FreeTypeFontGenerator는 글꼴을 만들기 위해 픽셀을 비트 맵으로 그리기 때문에 픽셀을 사용합니다. 따라서 원하는 글꼴 높이의 픽셀 수를 사용하십시오.

귀하의 경우 글꼴이 화면 높이의 1/10이되기를 원하기 때문에 :

private static final float FONT_SCREEN_HEIGHT_FRACTION = 1/10f;

//...
parameter.size = (int)(FONT_SCREEN_HEIGHT_FRACTION * Gdx.graphics.getHeight());

그런 다음 결과 글꼴의 크기를 조정하여 픽셀 단위가 아닌 표준 단위가되도록합니다.

font = fontGenerator.generateFont(parameter);
font.getData().setScale(WORLD_HEIGHT / Gdx.graphics.getHeight());

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Libgdx 비트 맵 글꼴 흰색 상자

분류에서Dev

Libgdx 글꼴 크기

분류에서Dev

LibGdx 뷰포트 이해 및 Scene2D와 연결

분류에서Dev

libgdx의 여러 카메라 및 뷰포트 문제

분류에서Dev

CSS 텍스트 및 글꼴 조작

분류에서Dev

텍스트 글꼴 및 색상 변경

분류에서Dev

libgdx에서 비트 맵 글꼴을 늘리는 방법

분류에서Dev

libGDX 글꼴의 그라디언트 색상

분류에서Dev

부트 스트랩 3 흐릿한 글꼴 및 글 리피 콘

분류에서Dev

Kivy TextInput 및 글꼴

분류에서Dev

xfig, xming 및 글꼴

분류에서Dev

rxvt 및 Inconsolata (글꼴)

분류에서Dev

rxvt 및 Inconsolata (글꼴)

분류에서Dev

libgdx에서 비트 맵 글꼴의 알파를 변경하는 방법

분류에서Dev

콘텐츠 및 포커스 손실시 UITextField 글꼴 크기

분류에서Dev

제목 및 본문에 대해 다른 글꼴로 부트 스트랩 글꼴 덮어 쓰기

분류에서Dev

텍스트 크기 및 글꼴 색상에 대한 CSS 조정

분류에서Dev

CUPS / texttopdf 및 "Noto"트루 타입 글꼴 문제

분류에서Dev

VirtualBox의 Linux 게스트에있는 작은 글꼴 및 요소

분류에서Dev

Cocoa 텍스트 메뉴 및 NSOutlineView에서 글꼴 수정

분류에서Dev

각도 차트의 사용법 : 색상 및 글꼴

분류에서Dev

기본 뒤로 버튼 텍스트 및 글꼴 설정

분류에서Dev

JMenuBar가 표시된 후 JMenu 및 JMenu 글꼴 업데이트

분류에서Dev

힌디 텍스트 및 글꼴 표시 문제

분류에서Dev

이 날짜 스크립트에서 글꼴 및 글꼴 군을 어떻게 조정합니까?

분류에서Dev

UITextView attributeText가 글꼴 및 / 또는 글꼴 크기를 업데이트하지 않음

분류에서Dev

libgdx의 거리 필드 글꼴

분류에서Dev

ImageTextButton에 대한 Libgdx 누락 LabelStyle 글꼴

분류에서Dev

글꼴 및 정렬 문제

Related 관련 기사

뜨겁다태그

보관