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

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

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

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

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

3 ответа

Решение

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

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

Тогда я использовал этот код

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

Чтобы масштабировать 'default-font' (как определено в skin.json) до нужного мне масштаба (в моем случае это 0.33f)

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

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

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

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

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

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