gpt4 book ai didi

java - 2D 游戏中的 LWJGL HUD

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:18 25 4
gpt4 key购买 nike

所以我正在使用 LWJGL 用 Ja​​va 编写 2D 游戏。我在游戏循环中放置了正交相机,并将其设置在我想要看到的位置。现在,当我想绘制一个 HUD 来显示我的钱等时,我可以给它一个绝对坐标,这样它就是我的 map 的一部分,我可以滚动远离我的 HUD(这对于 HUD 来说绝对没有意义),或者我可以将我的 HUD vector 添加到我的相机左下 vector 。最后一个解决方案的问题是,如果我移动相机,我的 HUD 不会完美更新,您会看到它追逐其实际位置。

所以我的问题是:有什么方法可以在第二个“层”中设置相对于屏幕的固定位置吗?我见过一些人只使用 gltranslate 来移动相机,但我想现在改变它可能需要很多工作,所以我想保留我的正交相机。

编辑:

这就是我的 Graphicsloop 的样子,但它仍然无法正常工作:

private void updateRunning() {
cam.update();
drawEntities();
drawHud();
cursor.draw();
}

最佳答案

I can add my HUD vector to my cameras bottom-left Vector. Problem with that last solution is, that if I move my camera, my HUD does not perfectly update and you see it chasing its actual position.

这不应该发生。可能发生的情况是你有这样的事情:

gameLoop() {
update();
drawPlayer();
drawHud();
updateCamera();
}

但是,您需要在绘制任何内容之前(甚至在更新之前)更新相机。

gameLoop() {
update();
updateCamera();
drawPlayer();
drawHud();
}

要在其他对象之上绘制 HUD,只需在之后渲染即可。

drawBackground();
drawPlayer();
drawHUD();

关于java - 2D 游戏中的 LWJGL HUD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com