我在运行时使用FreeTypeFont扩展创建我的字体。我在这里看到了一种匹配字体与屏幕分辨率的方法:
https://gamedev.stackexchange.com/questions/77658/how-to-match-font-size-with-screen-resolution?rq=1
然而,问题如下:在我的笔记本电脑上,PPI较低,字体太小,而在PPI较高的手机上,字体太大。
我的代码:
public BitmapFont createFont(FreeTypeFontGenerator ftfg, float dp) {
FreeTypeFontParameter f = new FreeTypeFontParameter();
f.size = (int)(dp * Gdx.graphics.getDensity());
f.color = Color.BLACK;
f.minFilter = Texture.TextureFilter.Nearest;
f.magFilter = Texture.TextureFilter.MipMapLinearNearest;
//ftfg.scaleForPixelHeight((int)(dp * Gdx.graphics.getDensity()));
return ftfg.generateFont(f);
}
然后我有:
font = createFont(new FreeTypeFontGenerator(Gdx.files.internal("Fonts/Roboto-Black.ttf")), 12);
font.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);
这里似乎有一个解决方案: https://gamedev.stackexchange.com/questions/79487/problem-to-match-font-size-to-the-screen-resolution-in-libgdx 但我不太明白。
创建字体的正确方法是什么,或者设置字体大小以使它们与屏幕相比具有相同的比例(无论是在桌面上还是在桌面上)并且在调整大小时看起来不会扭曲?