XNA에서 스프라이트 폰트 기술은 끔찍합니다. Nuclex는 그 일을 훨씬 더 잘하지만 외부 참조를하고 싶지 않으며 거의 게임이 끝났습니다.
Sansation 또는 Quicksand와 같은 글꼴을 사용하면 작은 크기의 글꼴에서 끔찍하게 보입니다. 그거 매우 나빠!
이에 대한 알려진 해결 방법이 있습니까? 글꼴 크기를 매우 높게 설정 한 다음 스프라이트 배치에서 크기를 줄이지 않고 크기를 줄였습니다.
XNA에서 스프라이트 폰트 기술은 끔찍합니다. Nuclex는 그 일을 훨씬 더 잘하지만 외부 참조를하고 싶지 않으며 거의 게임이 끝났습니다.
Sansation 또는 Quicksand와 같은 글꼴을 사용하면 작은 크기의 글꼴에서 끔찍하게 보입니다. 그거 매우 나빠!
이에 대한 알려진 해결 방법이 있습니까? 글꼴 크기를 매우 높게 설정 한 다음 스프라이트 배치에서 크기를 줄이지 않고 크기를 줄였습니다.
답변:
XNA를 사용하면 텍스처를 스프라이트 폰트로 가져올 수 있습니다 . XNA가 생성하는 스프라이트 시트에 의존하기보다는 좋은 이미지 편집 프로그램에서 각 문자를 수동으로 배치하면 글꼴에서 더 나은 힌트 및 앤티 앨리어싱을 얻을 수 있습니다.
XNA 스프라이트 글꼴 프로세서는 XNA 4.0의 새로운 사전 곱셈 알파와 잘 작동하지 않는 DXT3 압축을 사용합니다. 따라서 텍스트가 고르지 않게 보입니다.
Nuclex Sprite 글꼴 프로세서Texture2D
는 글꼴 비트 맵 데이터를 보유하는 내부 가 압축되지 않으므로 품질 문제가 없다는 점을 제외하고는 정확히 동일한 데이터를 출력 합니다.
Nuclex 프로세서의 데이터는 동일한 형식이므로 XNA SpriteFont
리더가이를 읽을 수 있으므로 게임과 함께 배포하기 위해 Nuclex 라이브러리를 포함 할 필요가 없습니다.
또한 XNA의 기본 스프라이트 글꼴 정의와 동일한 XML 형식을 편리하게 사용할 수 있습니다.
즉, 외부 라이브러리를 게임과 번들링하는 데 아무런 문제가 없습니다. 그것들이 당신의 시스템이나 다른 것에 설치되는 것과는 다릅니다. (두 어셈블리를 병합 할 수도 있습니다).
그리고 코드에 대해서도 마찬가지입니다 (예를 들어 버전 관리가 걱정된다면). Nuclex.Fonts.Content.TrueTypeImporter.dll
소스 코드를 넣을 수 있습니다 . 실제로 큰 문제는 아닙니다.