Изменение размера шрифта в скине

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

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

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

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


person Haedrian    schedule 30.11.2013    source источник


Ответы (3)


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

this.getSkin().getFont("default-font").getData().setScale(0.33f,0.33f);
person Frackinfrell    schedule 26.10.2015

В документации сказано, что любой get вернет дескриптор фактического объекта. Так что изменения сохранятся.

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

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

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

Чтобы масштабировать «шрифт по умолчанию» (как определено в skin.json) до нужного мне масштаба (в моем случае это 0,33f)

person Haedrian    schedule 30.11.2013

По состоянию на 2017 год мне пришлось использовать

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

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

person Fractal    schedule 03.04.2017