hm... vielleicht meinst du das richtige...
wenn du den bildschirm mit tiles füllst, dann zeichnest du ja so, 
dass ein bißchen über den screen hinaus gezeichnet wird,
dadurch bleibt der rand an der selben stelle.
wenn du jetzt nur einen ausschnitt zeichnest, "hüpft" der rand ja,
weil eben immer komplette tiles gezeichnet werden.
deswegen zeichnet man über den fertigen kartenausschnitt einen rahmen drüber,
dadurch wird das wieder "smooth"...
hab dir mal ne kleine demo gecoded.
ist meine alte tiledemo, nur den kartenausschnitt verkleinert, und nen rehmen drumgesetzt.
zuerst so laufen lassen, wie es ist, dann siehst du wie der rand hüpft.
dann das rahmendisplay entkommentieren, dann wird der rahmen drüber gezeichnet.
;------------------------------------
wer mittesten will, hier ist das alte posting, wo auch die tiles drin sind:
http://www.purebasic.fr/german/viewtopi ... 634#116634
(auf die grafik rechtsklicken, kopieren, in paint einfügen, die einzelnen tiles ausschneiden, kopieren nach -> 001.bmp bis 008.bmp)
;------------------------------------
Code: Alles auswählen
#Display_Left   = 108
#Display_Top    = 108
#Display_Width  = 384
#Display_Height = 384
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"Tiledemo")
For n=1 To 8
  LoadSprite( 100+n, Right("00"+Str(n),3)+".bmp")
Next
Dim Map(1023,1023)
For n=0 To 1023
  For t=0 To 1023
    Map(n,t) = Random(7)+1
  Next
Next
; *** Create Framesprites ***
CreateSprite(97, 24, 24)
CreateSprite(98,384, 24)
CreateSprite(99, 24,384)
StartDrawing(SpriteOutput(97))
  DrawingMode(#PB_2DDrawing_Outlined)
  For n=0 To 3
    Box( n+1, n+1, 23-2*n, 23-2*n,RGB(96+8*n,96+8*n,96+8*n))
    Box( n  , n  , 23-2*n, 23-2*n,RGB(160-8*n,160-8*n,160-8*n))
  Next
  DrawingMode(#PB_2DDrawing_Default)
  Box( 4, 4, 16, 16,$808080)
StopDrawing()
StartDrawing(SpriteOutput(98))
  DrawingMode(#PB_2DDrawing_Outlined)
  For n=0 To 3
    Box( n+1, n+1,383-2*n, 23-2*n,RGB(96+8*n,96+8*n,96+8*n))
    Box( n  , n  ,383-2*n, 23-2*n,RGB(160-8*n,160-8*n,160-8*n))
  Next
  DrawingMode(#PB_2DDrawing_Default)
  Box( 4, 4,376, 16,$808080)
StopDrawing()
StartDrawing(SpriteOutput(99))
  DrawingMode(#PB_2DDrawing_Outlined)
  For n=0 To 3
    Box( n+1, n+1, 23-2*n,383-2*n,RGB(96+8*n,96+8*n,96+8*n))
    Box( n  , n  , 23-2*n,383-2*n,RGB(160-8*n,160-8*n,160-8*n))
  Next
  DrawingMode(#PB_2DDrawing_Default)
  Box( 4, 4, 16,376,$808080)
StopDrawing()
; ***************************
Repeat
  ExamineKeyboard()
  ClearScreen(0)
  If KeyboardPushed(#PB_Key_Left)
    FineX-2
    If FineX < 0
      FineX = 14
      MapX-1
      If MapX < 0
        MapX = 0
        FineX = 0
      EndIf
    EndIf
  EndIf
  If KeyboardPushed(#PB_Key_Right)
    FineX+2
    If FineX > 14
      FineX = 0
      MapX+1
      If MapX > 1023-50
        MapX = 1023-50
        FineX = 14
      EndIf
    EndIf
  EndIf
  If KeyboardPushed(#PB_Key_Up)
    FineY-2
    If FineY < 0
      FineY = 14
      MapY-1
      If MapY < 0
        MapY = 0
        FineY = 0
      EndIf
    EndIf
  EndIf
  If KeyboardPushed(#PB_Key_Down)
    FineY+2
    If FineY > 14
      FineY = 0
      MapY+1
      If MapY > 1023-38
        MapY = 1023-38
        FineY = 14
      EndIf
    EndIf
  EndIf
;***********************************
;*** Tile Engine
  For SY=0 To 24
    For SX = 0 To 24
      DisplaySprite(100+Map(MapX+SX,MapY+SY), #Display_Left + 16*SX - FineX , #Display_Top + 16*SY - FineY )
    Next
  Next
;***********************************
;***********************************
;*** Frame Display
;***
;*** erst so ansehen, dann entkommentieren.
; DisplaySprite(97, #Display_Left - 24, #Display_Top - 24 )
; DisplaySprite(97, #Display_Left + #Display_Width, #Display_Top - 24 )
; DisplaySprite(97, #Display_Left - 24, #Display_Top + #Display_Height )
; DisplaySprite(97, #Display_Left + #Display_Width, #Display_Top + #Display_Height )
; DisplaySprite(98, #Display_Left, #Display_Top - 24 )
; DisplaySprite(98, #Display_Left, #Display_Top + #Display_Height )
; DisplaySprite(99, #Display_Left - 24, #Display_Top )
; DisplaySprite(99, #Display_Left + #Display_Width, #Display_Top )
;***********************************
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
 
			
			
									
									Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.