I'm not sure what you mean by 'not moving each DD7Surface', but I can tell you how the camera works. You draw the tilemap based on the camera's coordinates and you can set the camera coordinates based on the playing character's coordinates. Example:
Private Type MAP_TILE
X as long
Y as long
End Type
Private Type CAMERA_POS
X as long
Y as long
End Type
Dim Tile(100,100) as MAP_TILE
Dim CameraPos as CAMERA_POS
Private sub DrawMap()
Dim X as long, Y as long
For X = CameraPos.X \ 32to CameraPos.X \ 32 + 20 For Y = CameraPos.Y \ 32 to CameraPos.Y \ 32 + 15 Draw Tile(X,Y)
Next Y
Next X
End Sub
Of course you fill in whatever the tilesize you're using and change the 20 and 15 to the number of tiles that will fit across the screen vertically and horrizontally. Then if you wanted to make the camera follow your main character then you would just add something to ur code like:
CameraPos.X = MyChar.X - 320 Camerapos.Y = MyChar.Y - 240
If CameraPos.X < 0 Then CameraPos.X = 0
If CameraPos.Y < 0 Then CameraPos.Y = 0
If CameraPos.X + 640 > MapWidth Then CameraPos.X = Mapwidth - 640
If CameraPos.Y + 480 > MapHeight Then CameraPos.Y = MapHeight - 480