Вопрос

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

  1. Давайте предположим, что у нас есть двумерный мир
  2. Размер мира равен M x N в прямом направлении
  3. Мир может содержать в себе некоторые предметы
  4. Элементы имеют координаты (x, y)
  5. Мир можно просматривать через окно, которое физически (m x n) велико.
  6. Окно браузера можно увеличивать / уменьшать
  7. Окно браузера можно перемещать вверх / вниз + влево вправо, находясь в пределах прямоугольника мира.

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

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

Это было полезно?

Другие советы

Реализуйте это так же, как вы бы реализовали Google Maps с помощью специальных маркеров.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top