我使用OrthographicCamera设置为720 x 1280,然后将其组合矩阵设置为SpriteBatch中的投影矩阵。然后,我使用FreeTypeFontGenerator生成一个BitmapFont,并使用它来呈现文本。
OrthographicCamera camera = new OrthographicCamera();
camera.setToOrtho(false, 720, 1280);
SpriteBatch batch = new SpriteBatch();
batch.setProjectionMatrix(camera.combined);
这是输出:
正如你所看到的那样,字体看起来非常扭曲,我发现修复它的唯一方法是删除我在SpriteBatch中设置投影矩阵的行。
batch.setProjectionMatrix(camera.combined);
我把它作为一个问题放在lib GDX github页面上,但我被告知这不是因为Lib GDX。我需要使用这个投影矩阵,以便我可以在一个分辨率下开发我的应用程序,并使其适合任何屏幕。有没有办法在不遇到这些问题的情况下渲染文本?
答案 0 :(得分:0)
使用ScreenViewport
使用像素完美投影。然后使用Table
来布局GUI,包括其标签。这样,您还可以支持多种宽高比,甚至可以根据宽高比使用不同的布局。
如果您想支持各种分辨率,则需要根据分辨率提供不同的资源。根据文件大小,您可能希望使用不同的build flavors或使用ResolutionFileHandleResolver
。或者,您可以使用freetype extension为设备生成正确的字体,但请注意,这可能会导致额外的渲染调用,从而影响性能。
请注意,所有这些仅适用于您的GUI。对于你的游戏逻辑,你显然使用最适合它的coordinate system(例如米),使用单独的相机。