Использование одного и того же шрифта с различными размерами в libgdx

Я использую BitmapFonts, LabelStyles и Labels для своих текстов.

Я хочу изменить размеры некоторых меток, поэтому я использую это:

fontType.scale(-.6f);

LabelStyle style = new LabelStyle(fontType, Color.WHITE);

titleLabel = new Label("Points", style);
titleLabel.setColor(Color.RED);
titleLabel.x = 260; 
titleLabel.y = 310;

Но когда я хочу изменить размер другого ярлыка, все метки, содержащие этот размер шрифта (я создаю новый LabelStyle). Поэтому я изменяю размер метки вместо шрифта, но это не решает проблему, потому что она не изменяет размер метки, никакой идеи?

Ответ 1

Вам нужно будет создать отдельные BitmapFonts и LabelStyle для каждого ярлыка (или группы меток), если вы хотите масштабировать их независимо.

Из проверки исходного кода libgdx Label использует ссылку на BitmapFont из LabelStyle и передает ее BitmapFontCache используется внутри; никакая глубокая копия не создается в любой точке, поэтому все они используют один и тот же BitmapFont, с которым вы создали LabelStyle с.

Ответ 2

Я использую libgdx 0.9.8 (так как это старый вопрос), и когда я создал ярлык как таковой:

lblA = new Label("A", skinA);

Я могу изменить размер шрифта только этой метки:

lblA.setFontScale(3);

Это не влияет на другие ярлыки, которые у меня были созданы таким же образом. Я установил некоторые из своих меток на шкалу шрифтов (2), и все в порядке (на них не влияет (3)). Тем не менее, я считаю, что стилизация моего лейбла не является "независимой". Им нужно назначить свой собственный LabelStyle, иначе вы получите поведение, о котором вы заявляете.