所以我用LWJGL编写了一个用Java编写的2D游戏。我在我的游戏环中安装了我的相机,并将其设置在我想要看到的位置。现在当我想画一个HUD来显示我的钱等时,我可以给它一个绝对坐标,这样它就是我地图的一部分而且我可以滚动离开我的HUD(这绝对没有意义) HUD),或者我可以将我的HUD矢量添加到我的相机左下方Vector。最后一个解决方案的问题是,如果我移动相机,我的HUD不能完美更新,你会看到它追逐它的实际位置。
所以我的问题是: 有没有什么办法可以在第二层中设置相对于我的屏幕的固定位置'? 我见过一些只使用gltranslate移动相机的人,但我想现在改变它可能需要做很多工作,所以我想保留我的相机。
修改
这就是我的Graphicsloop看起来像它仍然无法正常工作:
private void updateRunning() {
cam.update();
drawEntities();
drawHud();
cursor.draw();
}
答案 0 :(得分:1)
我可以将我的HUD矢量添加到我的相机左下方Vector中。最后一个解决方案的问题是,如果我移动相机,我的HUD不能完美更新,你会看到它追逐它的实际位置。
这不应该发生什么。可能发生的事情是你有这样的事情:
gameLoop() {
update();
drawPlayer();
drawHud();
updateCamera();
}
但是,您需要在绘制任何内容之前(甚至在更新之前)更新相机。
gameLoop() {
update();
updateCamera();
drawPlayer();
drawHud();
}
要在其他对象之上绘制HUD,只需在之后渲染它。
drawBackground();
drawPlayer();
drawHUD();