Текст Xna с дополнительным пробелом между символами

Я делаю новую игру и хочу использовать собственные текстуры для текстов. Я наткнулся на этот классный инструмент под названием SpriteFont 2.0, который похож на редактор WYSIWYG для создания файлов текстур для файлов SpriteFont в XNA. Я сделал этот шрифт:Моя текстура шрифта

Но моя проблема в том, что когда я помещаю его в XNA, между буквами появляется ОЧЕНЬ много лишнего пробела. Например, это должно было сказать "Это тест", но получилось так:

Что-то не так с моим файлом текстуры, или мне нужно что-то делать с моим программированием? Я просто использовал первый метод DrawString в SpriteBatch объект. Я также изменил импорт содержимого для файла текстуры на Sprite Font Texture. Я не знаю, почему в тексте так много места между символами.

1 ответ

Решение

Вы можете изменить свойство Spacing вашего объекта SpriteFont во время выполнения. Установите его в отрицательное значение и посмотрите, находятся ли буквы ближе друг к другу.

SpriteFont myFont = ...;
myFont.Spacing = -10;

С другой стороны, если редактор имеет настройки кернинга, это то, что вы действительно хотите. Кернинг определяет расстояние между буквами примерно так:

Пример кернинга


Существует также свойство LineSpacing для вертикальной высоты, которое вы также можете настроить, если вы печатаете несколько строк на экране (как один вызов отрисовки).

Другие вопросы по тегам