Поэтому я программирую 2D-игру на Java с LWJGL. У меня есть моя орто-камера в моем gameloop и установите ее на позицию, которую я хочу видеть. Теперь, когда я хочу нарисовать HUD, чтобы показать свои деньги и т.д., Я могу либо дать ему абсолютную координату, так что это часть моей карты, и я могу прокрутить прочь от моего HUD (что определенно не имеет смысла для HUD), или я могу добавить свой вектор HUD в свои камеры внизу слева. Проблема с этим последним решением заключается в том, что, если я перемещаю свою камеру, мой HUD не будет совершенным образом обновляться, и вы увидите, что он преследует свое фактическое положение.
Поэтому мой вопрос: есть ли способ установить фиксированную позицию относительно моего экрана во втором слое? Я видел некоторых людей, которые используют gltranslate для перемещения камеры, но я думаю, что теперь может быть много работы, чтобы изменить его, поэтому я хочу сохранить свою орто-камеру.
редактировать:
Вот как выглядит мой Graphicsloop, и он все еще не работает должным образом:
private void updateRunning() {
cam.update();
drawEntities();
drawHud();
cursor.draw();
}
Я могу добавить свой вектор HUD в свои камеры внизу слева. Проблема с этим последним решением заключается в том, что, если я перемещаю свою камеру, мой HUD не будет совершенным образом обновляться, и вы увидите, что он преследует свое фактическое положение.
Это не то, что должно произойти. Скорее всего, у вас есть что-то вроде этого:
gameLoop() {
update();
drawPlayer();
drawHud();
updateCamera();
}
Однако вам необходимо обновить камеру, прежде чем рисовать что-либо (или даже до обновления).
gameLoop() {
update();
updateCamera();
drawPlayer();
drawHud();
}
Чтобы нарисовать HUD поверх других объектов, просто отрисуйте его после.
drawBackground();
drawPlayer();
drawHUD();