Android OpenGL игра - PullRequest
       21

Android OpenGL игра

6 голосов
/ 05 февраля 2010

Я пытаюсь разработать 2D-игру для Android с использованием OpenGL.

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

Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

У меня нет примеров API, но я занимался дизайном игр в колледже, поэтому я дам свои два бита.

Используемый вами метод будет зависеть от стиля, размера, функциональности и формата вашей карты.

Например, если вы ищете очень статичную неизменяющуюся карту, используйте простое изображение. Вы можете использовать фрейм API для просмотра изображений, позволяя вам увеличивать и уменьшать масштаб, как вы делаете это в галерее, и прокручивать увеличенные изображения, или в этом случае масштабировать местоположения на карте.

В качестве альтернативы, если ваша карта основана на системе листов, хорошим примером этого являются оригинальные игры Pokémon и Legend of Zelda от старого игрового мальчика, тогда каждая область хранит для себя «миниатюру» плитки в виде растрового изображения. Затем они помещаются в соответствующие места на сетке в зависимости от того, какие области обнаружены.

Это, вероятно, самый гибкий способ построения вашей карты, поскольку вы не полагаетесь на установленное растровое изображение для всей вашей карты, что означает, что она может эффективно изменить ее внешний вид; вы можете построить его по своему желанию, чтобы показать области выбора (полезно, если карта показывает только те места, которые покрыл геймер), а также означает, что вы можете делать наложение на основе плиток:

То есть - если в определенной области должны быть сокровища, на этой плитке, наложенной на ячейку карты, наложен значок с сокровищами.

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

0 голосов
/ 06 февраля 2010

Простейшим подходом было бы просто вызвать glTranslatef (-scrollX, -scrollY, 0), а затем glScalef (zoom, zoom, zoom) перед тем, как визуализировать карту.

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