Координаты в OpenGL ES - PullRequest
       5

Координаты в OpenGL ES

0 голосов
/ 21 февраля 2012

Я только начал разрабатывать 2D-игру для Android, что-то вроде игры в сквош.Сценарий (есть как 3 ошибки одного типа, движущиеся в случайных направлениях, когда я нажимаю на одну из них, она исчезает и т. Д.)

Я использую opengl es. Это простая 2D игра и мойКамера фиксируется в одном положении в открытых дверях.Я знаю, что координаты экрана моего телефона не совпадают с моими координатами OpenGLES, и поэтому я должен объединить / преобразовать их сам.

Извините, если мой вопрос кажется глупым, я только начинающий ....

Вопрос 1 (пожалуй, самое важное для создания этой игры).Как я уже сказал, у меня есть 3 одинаковых объекта (ошибки).Как я могу отслеживать координаты каждой из них в opengl одновременно .?

Вопрос 2. Есть ли какой-нибудь альтернативный и простой способ объединить координаты с экрана в opengl? Или я должен сделать это сам.

1 Ответ

0 голосов
/ 21 февраля 2012
  1. Вы должны просто иметь возможность отслеживать координаты каждого объекта, используя любую структуру данных, которую вы предпочитаете.Проще говоря, это может быть просто структура, которая содержит координаты x и y в «мировом пространстве».На каждой итерации вы обновляете эти координаты в зависимости от скорости и направления, а затем снова рисуете объекты.Без каких-либо хитроумных оптимизаций (которые вам, вероятно, не нужны, если это всего лишь несколько объектов), вы можете сделать это, вызвав перемещение вашей позиции к координатам объекта и вызвав draw.

  2. Я считаю, что в opengles вам придется следить за этим самостоятельно.

При работе в opengl (s) обычно вы отслеживаете координаты в «мировом пространстве», которое обозначает концептуальные мировые координаты объекта.Каждый объект может затем иметь свои собственные знания о том, как рисовать себя в «пространстве модели», что в основном предполагает, что объект центрирован в точке (0, 0), и позволяет вам указывать расположение ног и головок и тому подобное относительно (00).

Последний шаг состоит в том, чтобы проецировать координаты в «пространство экрана», которое соответствует тому, что установлено в вашем окне просмотра (которое в основном является вашим экраном).Переходы между координатами, как правило, выполняются с помощью матрицы моделей и проекций.Матрица вида модели преобразует ваши мировые координаты в координаты камеры (то есть относительно вашей камеры), а матрица проекции преобразует эти координаты в координаты области просмотра (то есть ваши экранные координаты).

Это может звучать какмного, но как только вы освоитесь с этими матрицами, это станет второй натурой.Я уверен, что есть обучающие программы для матриц проекции opengl modelview.Дайте нам знать, если у вас есть более конкретные вопросы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...