Как установить размер шрифта libGDX bitmap?

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

font.draw(batch, Float.toString(Gdx.graphics.getFramesPerSecond), x, y);

4 ответов


вы пробовали метод setScale (), который я использую для изменения размера моего шрифта

myFont.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);
myFont.setScale(scale);

Если у вас возникли проблемы, оставьте комментарий

Удачи !!

Edit:

С последней версией libgdx попробуйте масштабировать шрифт следующим образом:

myFont.getData().setScale();

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

С помощью Gdx.Программа FreeType вы можете создавать bitmapfonts во время выполнения из small .ttf файлы. Это означает, что вам нужно только отправить .ttf файлы с вашим приложением и может генерировать шрифт на основе пользовательских настроек, таких как разрешение.

другое затем масштабирование и решение freetype имеет несколько растровых изображений разных размеров шрифта. Таким образом, ваши шрифты остаются четкими все время, но за счет хранения.


Я тоже использую функцию setScale (), как и другие, чтобы уменьшить размер шрифта, но здесь я хочу предложить другое решение, и у меня есть вопрос. Почему вы не используете экземпляр FPSRenderer или почему вы не рисуете метку fps на другом пакете, матрица проекции которого имеет размер экрана?


setScale-это функция для использования. Обратите внимание, что с новейшей версией LibGDX (это изменилось ранее) вам нужно сделать это isntead:

font.getData().setScale(2, 2);

прежде чем это было достаточно, чтобы сделать:

font.setScale(2, 2);

первое число в setScale-это шкала X, а второе-шкала Y.