java - libgdx 如何在 3D 透视图中绘制文本?
问题描述
我想在我的 guiCam(不受任何旋转或变换影响的第二个摄像头)中渲染固定文本以进行调试。
我认为正在呈现的文本在我的角度来看要么大要么小,但我似乎无法在官方 libgdx 文档中找到文本是如何绘制的以及我如何操纵大小。
创造:
guiCam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
guiCam.position.set(1f, 1f, 20f);
guiCam.lookAt(0, 0, 0);
guiCam.near = 1f;
guiCam.far = 300f;
guiCam.update();
batch = new SpriteBatch();
batch.setProjectionMatrix(guiCam.combined);
font = new BitmapFont();
font.setColor(Color.RED);
使成为:
font.draw(batch, "debug line here", 200, 200);
有人可以向我解释一下 libgdx 默认字体是如何绘制的,或者这里是否有更好的解决方案来显示固定文本?
我已经尝试过使用 OrthoGraphic 相机而不是专用相机,但由于我的主要应用程序是 3D,因此 OrthoGraphic 相机不起作用。
解决方案
lookx2给出的答案:
您可以只使用另一个 SpriteBatch 而不设置投影矩阵来绘制 HUD,
camera.update();
spriteBatch.setProjectionMatrix(camera.combined);
spriteBatch.begin();
aButton.draw(spriteBatch, 1F);
playerShip.draw(spriteBatch, 1F);
spriteBatch.end();
hudBatch.begin();
//Draw using hudBatch
hudBatch.end();
如果您想在屏幕上呈现文本,那么您需要通过绘制到 HUD 来实现
推荐阅读
- azure - 更改 Azure 中 Kubernetes 创建的资源名称?
- javascript - 为什么我们在使用带有 Next.js 的 SSR 为客户端预渲染数据时需要 JSON.stringify(data)
- php - 连接两种不同形式的上传和提交按钮
- arrays - MATLAB for 循环到多列
- python - 将 json 数组更改为 2d 数组
- visual-studio - 从命令行启用/禁用 VS C++ 代码编译的预处理器
- python - 维基百科 API 请求中的“继续”参数
- xsd - Crystal Report:出现子报表时出错
- ethernet - ESP32 内核随机崩溃 (network_event)
- laravel - 如何在 Laravel Vapor 中使用`laravel-backup`-Package