Вопрос 2D-дизайна

Я столкнулся с проблемой, которая, вероятно, чрезвычайно распространена в игровом дизайне.

  • Предположим, что у нас есть 2D-мир
  • Размер мира - M x N rect
  • Мир может содержать некоторые элементы в нем
  • Элементы имеют (x, y) координаты
  • Мир можно просмотреть через физическое физическое (m x n) окно.
  • Окно браузера можно увеличить/уменьшить
  • Окно браузера можно панорамировать вверх/вниз + влево вправо, в то время как в экстентах мира rect.

Как мне это реализовать? Меня особенно беспокоит окно браузера. Может ли кто-нибудь рекомендовать какие-либо хорошие чтения?

Это не домашнее задание - это больше задача, которую я поставил перед собой.

3
задан Maciek 19 окт. '09 в 22:12
источник поделиться
4 ответов

http://web.archive.org/web/20100111062144/http://www.parallelrealities.co.uk/tutorials/

1
ответ дан James Morris 19 окт. '09 в 22:17
источник поделиться

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

В разработке игры есть несколько способов приблизиться к этому. Как правило, вы настраиваете проекцию представления, чтобы показать как можно больше мира (т.е. Преобразовать из координат мира в координаты просмотра, обычно орфографическую проекцию) и просто перевести мир или представление, чтобы разместить окно просмотра так, чтобы оно было указывая на то, что вы хотите видеть. Если вы правильно установите позиции своих объектов, 3D-оборудование будет рисовать то, что вы ожидаете.

1
ответ дан Kylotan 20 окт. '09 в 16:37
источник поделиться

Внедрите его так же, как вы реализуете Карты Google с помощью специальных маркеров.

1
ответ дан Anthony Mills 19 окт. '09 в 22:18
источник поделиться

Вы могли бы уйти с dhtml, но flash или silverlight было бы намного проще реализовать что-то вроде этого.

Взгляните на код google maps для некоторого вдохновения. Они делают что-то похожее на то, что вы хотите в чистом html.

0
ответ дан Byron Whitlock 19 окт. '09 в 22:16
источник поделиться

Другие вопросы по меткам