Я занимаюсь разработкой игры на XNA, в которой используется физический движок Farseer, по сути, 2D-платформер.У меня проблемы с разрешением метода рисования спрайтов в сравнении с моими желаемыми единицами измерения для физического движка.
Например, у меня есть спрайт для человека, физическая форма которого составляет просто 0,8 х 1,8 (метра), иЭто позиция также в метрах.Делает гравитацию и масштабирование в реальном мире очень простым.(Мне также нравится мое происхождение в левом нижнем углу, но я могу справиться с переворотом мышления)
Однако стандартным способом рендеринга в 2d является SpriteBatch.Draw, который работает с соотношением пикселей 1: 1, сПроисхождение в левом верхнем углу.
Какой стандартный способ примирить это?Первоначально я просто вручную определял масштабированное положение / размер прямоугольника и использовал параметры источника / назначения из SpriteBatch, но это кажется изворотливым и медленным.В идеале я хотел бы установить матрицу проекции, а затем просто нарисовать все, используя информацию из физических объектов.Увы, все необходимые прямоугольники являются целочисленными, а не плавающими, так что это не так хорошо работает ...
В другом проекте (OpenGL) я просто настраиваю свою матрицу представления, чтобы она соответствовала размеру,и визуализировал четырехугольники с текстурами на них.Так я должен подходить к этому в XNA?Или есть какой-то секретный метод, который используют люди, использующие XNA?