有没有办法在没有 BitmapFonts 的情况下在 libgdx 中绘制字符串?
Is there a way to draw Strings in libgdx without BitmapFonts?
我想在我的 Libgdx 游戏中绘制字符串,但我不能使用位图字体,因为我的游戏规模太小,无法使用它们。
听起来你的意思是视口的比例太小,无法正确显示字体。有两种解决方法。第一个更易读,而第二个又快又脏。
一种方法是为 UI 使用第二个视口,该视口具有适当的文本比例。您将首先调用 gameViewport.apply()
,绘制游戏,然后结束该批处理。然后用uiViewport.apply()
再画UI。这种方法的缺点是,如果您想绘制与游戏中移动对象对齐的文本,则必须使用两个视口来转换坐标。否则,这是获得清晰外观的理想方法 UI。理想情况下,您可以在运行时根据屏幕尺寸使用 ScreenViewport 和 select 字体大小,方法是在您的游戏中使用不同比例的多个版本的字体,或者使用 FreeTypeFontGenerator。
第二种方法是缩小所有文本。第一次调用 bitmapFont.setUseIntegerPositions(false)
do 它不会将位置四舍五入为整数。然后调用 bitmapFont.setScale()
,无论你想将它缩小多少以适应你的游戏视口。
有一个gdx-freetype项目:
https://www.badlogicgames.com/wordpress/?p=2300
它使用 TrueType 字体作为源来动态生成位图字体。
不确定这有多稳定 - 没有使用它。
我想在我的 Libgdx 游戏中绘制字符串,但我不能使用位图字体,因为我的游戏规模太小,无法使用它们。
听起来你的意思是视口的比例太小,无法正确显示字体。有两种解决方法。第一个更易读,而第二个又快又脏。
一种方法是为 UI 使用第二个视口,该视口具有适当的文本比例。您将首先调用 gameViewport.apply()
,绘制游戏,然后结束该批处理。然后用uiViewport.apply()
再画UI。这种方法的缺点是,如果您想绘制与游戏中移动对象对齐的文本,则必须使用两个视口来转换坐标。否则,这是获得清晰外观的理想方法 UI。理想情况下,您可以在运行时根据屏幕尺寸使用 ScreenViewport 和 select 字体大小,方法是在您的游戏中使用不同比例的多个版本的字体,或者使用 FreeTypeFontGenerator。
第二种方法是缩小所有文本。第一次调用 bitmapFont.setUseIntegerPositions(false)
do 它不会将位置四舍五入为整数。然后调用 bitmapFont.setScale()
,无论你想将它缩小多少以适应你的游戏视口。
有一个gdx-freetype项目:
https://www.badlogicgames.com/wordpress/?p=2300
它使用 TrueType 字体作为源来动态生成位图字体。
不确定这有多稳定 - 没有使用它。