2D-координаты игрового актера и координаты экрана - PullRequest
0 голосов
/ 03 марта 2011

Я занимаюсь разработкой игры на XNA, в которой используется физический движок Farseer, по сути, 2D-платформер.У меня проблемы с разрешением метода рисования спрайтов в сравнении с моими желаемыми единицами измерения для физического движка.

Например, у меня есть спрайт для человека, физическая форма которого составляет просто 0,8 х 1,8 (метра), иЭто позиция также в метрах.Делает гравитацию и масштабирование в реальном мире очень простым.(Мне также нравится мое происхождение в левом нижнем углу, но я могу справиться с переворотом мышления)

Однако стандартным способом рендеринга в 2d является SpriteBatch.Draw, который работает с соотношением пикселей 1: 1, сПроисхождение в левом верхнем углу.

Какой стандартный способ примирить это?Первоначально я просто вручную определял масштабированное положение / размер прямоугольника и использовал параметры источника / назначения из SpriteBatch, но это кажется изворотливым и медленным.В идеале я хотел бы установить матрицу проекции, а затем просто нарисовать все, используя информацию из физических объектов.Увы, все необходимые прямоугольники являются целочисленными, а не плавающими, так что это не так хорошо работает ...

В другом проекте (OpenGL) я просто настраиваю свою матрицу представления, чтобы она соответствовала размеру,и визуализировал четырехугольники с текстурами на них.Так я должен подходить к этому в XNA?Или есть какой-то секретный метод, который используют люди, использующие XNA?

Ответы [ 2 ]

0 голосов
/ 07 марта 2011

В итоге я просто создал набор вершин, чтобы сделать текстурированный квад из (-0.5, -0.5) до (0.5, 0.5), и масштабировал / переводил его в соответствующую позицию, когда я рисую.

Это дает соотношение объектов к физике 1: 1, все упрощает. Я столкнусь с проблемами с размером спрайта при разных разрешениях, но я думаю, что это небольшая цена, которую можно обойти, и обойтись осторожно с размером спрайта.

Я отмечу это как ответ, если кто-то не придумает лучшего решения.

0 голосов
/ 03 марта 2011

Я думаю, что вы ищете "виртуализацию камеры", здесь есть хороший учебник> http://www.david -amador.com / 2009/10 / xna-camera-2d-with-zoom-and -поворот /

...