2013-12-21 3 views
-1

Я делаю простую программу съемки танков.Как сделать измеритель мощности с помощью opengl?

это игра 3d opengl и имеет угол, манометр. Я буду использовать этот фактор для расчета пятна, чтобы сбросить ракету.

Пробел, управляющий манометром, и левая, правая, верхняя и нижняя клавиши будут использоваться для управления углом.

, поэтому я хочу, чтобы калибровочное мощность бар и форму угла, как показано ниже изображения

enter image description here

, но я не знаю, как я состыковать эту форму в OpenGL.

ответ

1

Вы не можете «прикрепить» форму в OpenGL. Есть два варианта: либо вы рисуете часть GUI с обычными командами OpenGL (что относительно легко и просто), либо создаете второе окно, в котором размещается форма (или дочернее окно, если ваш менеджер окон поддерживает это). Например, под Windows это работает довольно тривиально. Однако я советую против этого, поскольку прямое рисование GUI в OpenGL является простым и аппаратным ускорением.

Рисунок вашего графического интерфейса в OpenGL может быть выполнен с использованием одной из многих доступных графических интерфейсов, или вы можете просто вручную указать несколько элементов, которые вам нужны. Это может быть так же быстро, как сначала выяснить, как используется другая структура.
Панель питания - это в основном прямоугольник (возможно, с градиентом или текстурой), а маленькие клинья - это просто текстурированные точечные спрайты. Основной фон «формы» можно также нарисовать только одним текстурным квадратом. Уголными датчиками было бы несколько линий, нарисованных над фоном, опять же не большая проблема.

Самый «сложный» бит - это рисование динамического текста (например, «Delay 720» на скриншоте), потому что качественный текст включает в себя чуть больше, чем просто подбрасывание простого текстурированного прямоугольника на экране, вы, например, захотите сделать правильный кернинг поэтому он выглядит хорошо.
Как правило, вы все равно обычно используете текстурированные квадрациклы, поскольку это самое быстрое решение (возможно, с текстурой поля расстояния). Для растровых шрифтов также существуют многочисленные доступные библиотеки (и инструменты создания контента, например, BMFont).

+0

спасибо. это действительно полезно – dskim

+0

однако, как я могу отключить питание и угол, если положение камеры изменилось? – dskim

+0

@dskim сбрасывает карты просмотра и проекции на идентичность, иначе они не помещают их в игровой мир, но нарисовывают их непосредственно как координаты в виде просмотра. –

Смежные вопросы