Im a little confused as to what you mean
do you mean you want to be able to have a never ending map?
if that's the case you need a mapset like
ABCDEFGHIJ[KLM]NOPQRSTUVWXYZ
where [] indicates you current view of tiles for example
you then move the map not the player
so for example if one of the tiles is less than a certain amount then place it to the right like ABC is below
DEFGHIJKLM[NOP]QRSTUVWXYZABC
Something like this
SetVirtualResolution(1024,768)
GLOBAL Block as integer[5,4]
for y= 1 to 4
for x = 1 to 5
Block[x,y] = createSprite(0)
setSpriteSize(Block[x,y],300,300)
setSpritePosition(Block[x,y],(x-1)*300,(y-1) * 300)
setSpriteColor(Block[x,y],random(1,255),random(1,255),random(1,255),255)
next x
next y
do
speed#=10
if GetRawKeyState(37) //left arrow pressed
ScrollRight(speed#)
endif
if GetRawKeyState(39) //right arrow pressed
ScrollLeft(-speed#)
endif
if GetRawKeyState(38) //up arrow key pressed
ScrollDown(speed#)
endif
if GetRawKeyState(40) //Down arrow pressed
ScrollUp(-speed#)
endif
Sync ()
loop
function ScrollUp(y# as integer)
for y=1 to 4
for x = 1 to 5
SetSpritePosition (Block[x,y], getSpritex(Block[x,y]), GetSpriteY (Block[x,y]) + y#)
next x
for x = 1 to 5
if getSpriteY(Block[x,y])<-300
SetSpritePosition (Block[x,y], getSpritex(Block[x,y]), GetSpriteY (Block[x,y]) + 1200)
endif
next x
next y
endfunction
function ScrollDown(y# as integer)
for y=1 to 4
for x = 1 to 5
SetSpritePosition (Block[x,y], getSpritex(Block[x,y]), GetSpriteY (Block[x,y]) + y#)
next x
for x = 1 to 5
if getSpriteY(Block[x,y]) > GetVirtualHeight()
SetSpritePosition (Block[x,y], getSpriteX(Block[x,y]), GetSpriteY (Block[x,y]) - 1200)
endif
next x
next y
EndFunction
function ScrollLeft(x# as integer)
for y=1 to 4
for x = 1 to 5
SetSpritePosition (Block[x,y], GetSpriteX (Block[x,y]) + x#, GetSpriteY (Block[x,y]) )
next x
for x = 1 to 5
if getSpriteX(Block[x,y])<-300
SetSpritePosition (Block[x,y], GetSpriteX (Block[x,y]) + 1500, GetSpriteY (Block[x,y]))
endif
next x
next y
endfunction
function ScrollRight(x# as integer)
for y=1 to 4
for x = 1 to 5
SetSpritePosition (Block[x,y], GetSpriteX (Block[x,y]) + x#, GetSpriteY (Block[x,y]) )
next x
for x = 1 to 5
if getSpriteX(Block[x,y])> getVirtualWidth()
SetSpritePosition (Block[x,y], GetSpriteX (Block[x,y]) - 1500, GetSpriteY (Block[x,y]))
endif
next x
next y
endfunction
fubar