我想在我的libgdx游戏中绘制字符串,但我不能使用bitmap字体,因为我的游戏的比例是使用它们。
听起来您的意思是您的视口度比例太小,无法正确显示字体。有两种解决方案。第一个更适合易读性,而第二个则是快速而肮脏的。
一种是使用第二个视口对UI使用适当的文本量表。您将首先致电gameViewport.apply()
,绘制游戏并结束批次。然后使用uiViewport.apply()
,然后绘制UI。此方法的不利之处是,如果您想绘制与游戏中移动对象保持一致的文本,则必须使用两个视口来转换坐标。否则,这是获得清晰外观UI的理想方法。理想情况下,您将使用ScreenViewPort并根据屏幕尺寸在运行时选择一个字体大小,要么通过在不同尺度上使用多个版本的字体运送游戏,要么通过使用FreetypeFontGenerator。
第二种方法是缩小所有文本。首先致电bitmapFont.setUseIntegerPositions(false)
,它不会将位置舍入整数。然后致电bitmapFont.setScale()
,但是您想缩小它以适合您的游戏视口。
有一个GDX-Freetype项目:
https://www.badlogicgames.com/wordpress/?p=2300
,它使用truetype字体作为源来生成即时生成位图字体。
不确定这有多稳定 - 不使用它。