我在尝试在我的游戏项目中放置文本/对话框系统时遇到了一个问题。当我创建一个字体并调用其上的绘制方法传递相机更新的spriteBatch时,字体的每个像素都具有与一个精灵相同的尺寸。LibGDX sprite批量字体坏比例渲染
我得到以下渲染:
什么,你可以在图片中看到的是对的“你好”与每个像素超大的“h”的顶部。 相同的相机用于渲染瓷砖/精灵。
我想达到的效果是与此类似:
下面是代码:
// 15 * 12 tile size
camera = new OrthographicCamera(Const.VIEWPORT_WIDTH, Const.VIEWPORT_HEIGHT);
BitmapFont font = new BitmapFont(Gdx.files.internal("data/fonts/myfont.fnt"));
// ....
// p => player position
camera.position.x = p.getX();
camera.position.y = p.getY();
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
font.draw(batch, "hello", p.getX(), p.getY());
batch.end();
我一直在使用font.setScale()
没有成功尝试。
有人知道如何做到这一点吗?
谢谢您的答复,但我想文字的坐标是一样的精灵渲染相机。我需要手动更新坐标吗? –
是的,你必须手动计算它,我编辑我的答案,告诉你如何。 – Lestat
它完美的工作,非常感谢你这个很好的答案。 –