В обычном графическом интерфейсе подход заключается в использовании ViewPort. Не уверен в специфике вашей платформы, но ViewPort заботится о том, что пользователь может видеть, отслеживая, где находится большая «Большая карта», которую подходит ViewPort. При регулярном графическом программировании у вас есть полосы прокрутки для перемещения, но вам, вероятно, придется самостоятельно управлять движением.
Основная предпосылка ViewPort заключается в том, что документ намного больше, чем пользователь может видеть. Я предполагаю, что Sdl.NET не имеет такой конструкции как таковой. (Я не мог найти документы API). Вы можете создать его самостоятельно, что позаботится о том, чтобы блеснуть правую часть фона или большую карту на самом экране. ViewPort будет всего лишь пару пунктов, чтобы отслеживать верхний левый угол экрана и нижний правый угол экрана. Дайте себе пару методов для перемещения ViewPort и убедитесь, что он находится в границах Большой карты.
После этого это всего лишь вопрос связывания всего этого.
Это не редкость иметь дерево всех объектов в сцене, так что вы можете убедиться, что вы показываете только объекты, которые должны находиться на экране. Это поможет вашей функции «Рисовать» быстро разбить фон и любые элементы переднего плана внутри порта просмотра.
Это справедливый вопрос, но для большей экспозиции вам может потребоваться расспросить [Game Dev SE] (http://gamedev.stackexchange.com). Я не участвую там, но это, похоже, соответствует тем вопросам, которые в настоящее время находятся на главной странице Game Dev. – Pops
Мой ответ здесь охватывает тот же вопрос: http://stackoverflow.com/questions/3801332/data-structure-for-levels-in-games/3804276#3804276 – Martin