2013-11-30 2 views
3

Я пишу игру с использованием libgdx, и я заимствовал skin.json (и связанные файлы) из учебника.Изменение размера шрифта в коже

Используемый шрифт (по умолчанию) масштабировался уродливым образом на более плотных экранах, поэтому я генерировал собственный очень большой шрифт - и в самой игре я масштабирую его до разумного размера (в основном я использую BitmapFont.scale). Шрифт, который я сейчас использую, в 3 раза больше, чем предыдущий.

Я изменил ссылку на шрифт, который будет использоваться в файле skin.json, и, как результат, все мои кнопки, титры и другие предметы будут показаны массивным шрифтом.

Есть ли способ масштабирования шрифта в файле .json? Или где-нибудь еще в коде? У Skin нет функции setFont(), поэтому я не могу создать масштабированный BitmapFont и назначить его)

ответ

5

Документация говорит, что любые получатели возвращают дескриптор фактическому объекту. Поэтому изменения будут сохраняться.

Поэтому я изменил шрифт в skin.json, чтобы указать на мой новый шрифт.

Затем я использовал этот код

this.getSkin().getFont("default-font").setScale(0.33f, 0.33f); 

Для масштабирования «по умолчанию шрифтами» (как определено в skin.json) в масштабе я хотел (в моем случае его 0.33f)

8

Libgdx изменил это в апреле 2015 года, так что заданный ответ больше не работает. Потребовалось немного, чтобы найти ответ, поэтому я подумал, что оставлю его здесь для других, поскольку этот ответ появляется сначала в Google.

this.getSkin().getFont("default-font").getData().setScale(0.33f,0.33f); 
2

С 2017 года я должен был использовать

skin.getFont("default-font").getData().setScale(0.5f); 

для будущих пользователей.