Есть ли способ рисовать строки в libgdx без BitmapFonts? - PullRequest
0 голосов
/ 23 мая 2019

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

Ответы [ 2 ]

1 голос
/ 23 мая 2019

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

Один из них - использовать второй видовой экран для пользовательского интерфейса с соответствующим масштабом для текста. Сначала вы должны позвонить gameViewport.apply(), нарисовать игру и завершить игру. Затем используйте uiViewport.apply() и затем нарисуйте пользовательский интерфейс. Недостатком этого метода будет то, что если вы хотите нарисовать текст, который выровнен с движущимися объектами в игре, вам придется использовать два вида для преобразования координат. В противном случае это идеальный способ получить четкий интерфейс. В идеале вы должны использовать ScreenViewport и выбирать размер шрифта во время выполнения на основе размеров экрана, либо отправляя свою игру с несколькими версиями шрифта в разных масштабах, либо используя FreeTypeFontGenerator.

Второй способ - уменьшить весь ваш текст. Первый вызов bitmapFont.setUseIntegerPositions(false) не округляет позиции до целых. Затем назовите bitmapFont.setScale() с тем количеством, которое вы хотите уменьшить, чтобы оно соответствовало вашему игровому окну.

0 голосов
/ 24 мая 2019

Существует проект gdx-freetype:

https://www.badlogicgames.com/wordpress/?p=2300

и использует шрифты TrueType в качестве источника для создания растрового шрифта на лету.

Не уверен, насколько это стабильно - не использовал его.

...