Я боролся с этим некоторое время.
В настоящее время у меня есть сетка размером 100 на 100 плиток, принадлежащая карте.
Карта реализует IDrawable.Я вызываю Draw (), и он рисует себя в 0,0, что нормально.
Однако я хочу расширить это, чтобы нарисовать по существу область просмотра.Игрок будет нарисован на экране посередине, и поэтому я хочу отобразить, скажем, 10 плиток в каждом направлении (а не всю карту).
У меня проблемы с продумыванием архитектуры для этогоодин.У меня склад ума, что вещи должны рисовать сами, то есть я говорю player1.Draw (), и он рисует сам.Это работало бы раньше, когда он рисовал игрока в точке x, y на экране, но с окном просмотра он больше не будет знать, где рисовать себя.
Так что, если окно просмотра будет приказано рисовать, и исследоватькаждый объект в игре и нарисовать те, которые видны?Должны ли плитки карты быть объектами, которые подвергаются этому?Или должен ли видовой экран разумно рисовать карту, соединяя их вместе?
Мне бы хотелось знать, как это делают типичные игры с прокруткой.
Если это имеет значение, я использую XNA
Изменить, чтобы добавить: Можете ли вы выполнять графические манипуляции, например, пробовать подход к рендерингу HTML, где вы говорите, что нужно рисовать, и они возвращают графическое изображение, а затем родитель помещает графическое изображение в правильное местоположение?Я думаю, если бы у меня было 2 видовых экрана рядом для разделенного экрана, как бы я прекратил их рисовать за пределами краев?