我正在使用位图字体在屏幕上渲染游戏帧率,但是没有设置字体大小的方法。这对我来说是个问题,因为我的摄像机视口很小,所以渲染出来的文本非常大且像素化。
font.draw(batch, Float.toString(Gdx.graphics.getFramesPerSecond), x, y);
我正在使用位图字体在屏幕上渲染游戏帧率,但是没有设置字体大小的方法。这对我来说是个问题,因为我的摄像机视口很小,所以渲染出来的文本非常大且像素化。
font.draw(batch, Float.toString(Gdx.graphics.getFramesPerSecond), x, y);
myFont.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);
myFont.setScale(scale);
myFont.getData().setScale();
.ttf
文件中在运行时创建位图字体。这意味着您只需要在应用程序中发送.ttf
文件,并且可以基于用户设置(如分辨率)生成字体。setScale是要使用的函数。请注意,最新的LibGDX版本(尽管之前更改过)需要执行以下操作:
font.getData().setScale(2, 2);
以前只需要这样做:
font.setScale(2, 2);
setScale中的第一个数字是X轴缩放比例,第二个数字是Y轴缩放比例。
我和其他人一样使用setScale()函数来缩小字体大小,但是在这里我想提供另一个解决方案并且我有一个问题。为什么你不使用FPSRenderer实例或者为什么你不将fps标签绘制在另一个批次上,该批次的投影矩阵具有屏幕大小呢?
public static void setLineHeight(BitmapFont font, float height) {
font.getData().setScale(height * font.getScaleY() / font.getLineHeight());
}