XNA 2D производительность камеры - PullRequest
2 голосов
/ 27 июня 2011

Я хотел бы знать, визуализирует ли использование матрицы преобразования в SpriteBatch.Begin () весь мир или только регион, определенный в области просмотра? Если нет, то как лучше всего представить огромный мир без серьезных проблем с производительностью ??

Заранее спасибо!

1 Ответ

3 голосов
/ 27 июля 2011

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

Для мира на основе вам понадобятся два (вложенных) цикла для рисования области просмотра, ширины и высоты. Для каждого цикла вам нужна начальная точка и конечная точка.

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

Чтобы получить конечную точку для каждого цикла: разделите (ширина / высота) на (ширину / высоту) ячеек в сетке, а затем «потолок» этого числа.

Оттуда вы можете просто нарисовать сетку, используя начальную и конечную точки, которые были рассчитаны ранее.

Если ваш мир не основан на сетке, вы можете использовать простой тест «точка в прямоугольнике» или октре.

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