Здравствуйте, Hawk, Вы писали:
H>В общем, насколько я понял, основная идея — это копировать изображение из back-буфера на экран узкими полосами, предварительно сдвигая текущее содержимое экрана на ширину полосы. Чем меньше ширина полосы — тем плавнее прокрутка. Это, так сказать, общий принцип... Как конкретно это реализовать средствами DirectX — не знаю, ибо не в курсе.
Нужно что бы твои графические обьекты имели виртуальные координаты и реальные...
Виртуальные координаты это те которые на карте(карта хоть в 1 000 000 экранов) ее не хранят...
Map_Max_Width=max(Object[1..CountObjects].Width)
Map_Max_Height=max(Objects[1..CountObjects].Height)
Реальные координаты — это экранные координаты...
Так вот когда скролируешь, то меняються виртуальные координаты, тогда ты вычитываешь те обьекты которые попадают в область видимости по карте, рассчитывашь их реальные координаты, блитишь на BackBuffer, потом соответственно на PrimaryBuffer...
Работает плавнее некуда...