2016-07-10 2 views
0

OrthographicCamera를 720x1280으로 설정 한 다음 결합 된 행렬을 SpriteBatch의 투영 행렬로 설정합니다. 그런 다음 FreeTypeFontGenerator를 사용하여 BitmapFont를 생성하고이를 사용하여 텍스트를 렌더링합니다. 당신이 볼 수 있듯이Lib GDX 글꼴 렌더링 문제

This is the output

이 글꼴은 매우 왜곡 된보고 내가 투영 행렬을 설정 어디 선을 제거하여 그것이 해결하기 위해 찾을 수있는 유일한 방법 :

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

는 출력 내 SpriteBatch에서.

batch.setProjectionMatrix(camera.combined); 

lib GDX github 페이지에이 문제를 넣었지만 Lib GDX 때문이 아닙니다. 하나의 해상도에서 응용 프로그램을 개발하고 어떤 화면에 맞게 확장 할 수 있도록이 프로젝션 매트릭스를 사용해야합니다. 이 문제가 발생하지 않고 텍스트를 렌더링하는 방법이 있습니까?

답변

0

ScreenViewport을 사용하여 픽셀 완전 투영을 사용하십시오. 그런 다음 레이블을 포함하여 GUI를 레이아웃하려면 Table을 사용하십시오. 이 방법으로 여러 종횡비를 지원하거나 종횡비에 따라 다른 레이아웃을 사용할 수도 있습니다.

넓은 범위의 해상도를 지원하려면 해상도에 따라 다른 에셋을 제공해야합니다. 파일 크기에 따라 다른 build flavors을 사용하거나 ResolutionFileHandleResolver을 사용할 수 있습니다. 또는 freetype extension을 사용하여 장치에 대한 올바른 글꼴을 생성 할 수 있지만 성능에 영향을 줄 수있는 추가 렌더 호출이 발생할 수 있음을 알고 있어야합니다.

이 모든 것은 GUI에만 적용됩니다. 게임 논리를 위해 별도의 카메라를 사용하여 게임 논리 (예 : 미터)에 가장 적합한 의미로 coordinate system을 사용하십시오.

+0

대신 거리 필드 글꼴을 사용했지만 hiero로 글꼴을 생성 할 때 멋지게 렌더링되지만 일부 글자에는 패딩 문제가 있습니다. 여러 글꼴로 해봤는데 모두 같은 문제가 있습니다. 문제의 수정 사항을 알고 있습니까? – BananyaDev

+0

아마도 픽셀이 아닌 완벽한 투영으로 정수 위치를 사용하고 있지만 코드와 글꼴을 보지 않고도 그냥 짐작할 수 있습니다. 이 질문의 범위를 벗어나기 때문에 다른 질문을하는 것이 좋습니다. – Xoppa