В XNA технология spritefont ужасна. Nuclex делает работу намного лучше, но я не хочу никаких внешних ссылок, и я почти закончил с моей игрой.
При использовании таких шрифтов, как Sansation или Quicksand, он выглядит ужасно при меньших размерах шрифтов. Это так плохо!
Есть ли известный обходной путь для этого? Я попытался установить слишком большие размеры шрифтов, а затем уменьшил их в спрайте, но безуспешно.
Ответы:
XNA позволяет вам импортировать текстуру как шрифт . Вероятно, вы можете получить лучшие подсказки и сглаживание в вашем шрифте, если вы положите каждый символ вручную в хорошую программу для редактирования изображений, а не полагаетесь на спрайт, который генерирует XNA.
источник
Процессор шрифтов XNA sprite использует сжатие DXT3, которое плохо работает с новым предварительно умноженным альфа-каналом в XNA 4.0. Отсюда блочный вид текста.
Процессор шрифтов Nuclex sprite выводит точно такие же данные, за исключением того, что внутреннее содержимое
Texture2D
, содержащее данные растрового изображения шрифта, не сжимается, поэтому у него нет проблем с качеством.Поскольку данные с процессора Nuclex имеют одинаковый формат, программа
SpriteFont
чтения XNA может их прочитать, и вам не нужно включать какие-либо библиотеки Nuclex для распространения в вашей игре.(Это также удобно позволяет использовать тот же формат XML, что и определения родных спрайтов XNA.)
При этом нет ничего плохого в том, чтобы связать внешние библиотеки с вашей игрой. Это не так, как они установлены в вашей системе или что-то еще. (Вы могли бы даже пойти так далеко, чтобы объединить две сборки).
И то же самое относится и к коду (например, если вы беспокоитесь о контроле версий). Вы можете просто вставить
Nuclex.Fonts.Content.TrueTypeImporter.dll
свой исходный код. Это на самом деле не имеет большого значения.источник
Вы можете использовать пиксельные шрифты :
Когда вы используете пиксельный шрифт с размером шрифта, для которого он был разработан (или целым кратным, например, 2x, 3x, 4x), вам гарантирован идеальный текстовый пиксель, который не требует сглаживания. Это означает, что вам никогда не придется иметь дело с ужасным сглаживанием, которое делает спрайтовые шрифты XNA такими плохими, а Nuclex - намного лучше. ( Эта статья исследует эту проблему и сравнивает их)
источник