因此,LibGDX在一堆tutorials中大肆宣传如何不建议将设备像素用作您世界中的坐标。我可以理解逻辑并且看起来很合理,所以我正在更新我的相机代码来执行此操作:
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
aspect = h / w;
camera = new OrthographicCamera(1.0f, aspect);
camera.setToOrtho(true, 1.0f, aspect);
然而,我所做的很大一部分工作是使用字体。目前我的字体加载器如下所示:
glyphLayout = new GlyphLayout();
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("myfont.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 100;
parameter.characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.!'()>?:";
parameter.flip = true;
font = generator.generateFont(parameter);
这会产生巨大的字体。我对LibGDX中明显有冲突的坐标系统感到困惑 - 他们为什么不建议使用像素,但所有字体功能都处理像素?
如何更新此字体加载代码,以便获得大约占屏幕尺寸20%的字体?
答案 0 :(得分:0)
您可以开发一种分辨率(使用视口)并设置首选字体大小。 在运行时,您可以根据新的屏幕宽度缩放字体大小。
1920x1080, parameter.size = 16 => 1280x720, parameter.size = 16 / 1920 * 1280
此外,使用distance field fonts,您可以在运行时不使用字体ganerator来渲染平滑字体。