2017-02-01 2 views
1

Оба метода не документированы и не действуют, как я ожидал.Разница между Label.setScale и Label.setFontScale?

mylabel.setFontScale(3f); делает видимый текст в 3 раза больше (то, что я ищу), но не сфокусирован должным образом при использовании его с Align.center.

mylabel.setScale(3f); ничего не делает, насколько я мог видеть.

В чем разница между этими двумя методами и тем, что я должен использовать, чтобы сделать мой ярлык более крупным и правильно центрированным?

ответ

2

setFontScale() действительно расширяет шрифт, это часто нежелательно, поскольку масштабирование пикселирует шрифт.

label.setScale() действительно работает, если вы не используете макет, похожий на таблицу. Когда актеры входят в макет, макет отвечает за настройку размеров и положения. Например, вы контролируете это, как только вы помещаете его в ячейку таблицы.

table.add(myLabel).width(300).height(80).padLeft(100).expandX(); 

Detailed documentation Работая со столом.

Это, однако, просто размер этикетки, а не текст внутри. Вы все равно можете сделать setFontScale(3f), но это будет пикселизовать шрифт. У вас есть 2 лучших варианта:

  • создать дополнительный растровый шрифт в Hiero в 3 раза больше.
  • Используйте Gdx.Freetype, чтобы импортировать .ttf и генерировать шрифты во время выполнения.
+0

Я использую шейдер расстояния, поэтому я в порядке с масштабированием. Что делать, если я просто использую группу с setPosition для размещения метки? В любом случае, вы очень хорошо отвечаете на оригинальный вопрос, спасибо. – Winter

+0

Не уверен, что группа не использует ячейки и не реализует 'Layout', поэтому я предполагаю, что' setScale() 'должен работать. Но я нахожусь на своем телефоне и не имею IDE, чтобы проверить его. – Madmenyo

+0

Ну, я просто переключился на стол, спасибо. – Winter