You can use CloneSprite() if you wish, but what VanB is saying is that you are using the same Sprite handle over and over. What I would do is create a separate handle for each tile... Something like this;
rem Landscape App
SetDisplayAspect( 4.0/3.0 )
global dim ground[10]
AddVirtualJoystick ( 1, 10, 88, 12)
Player = createSprite(0)
setSpriteSize(Player,4,8)
setSpriteOffset(Player,2,4)
setSpritePositionByOffset(Player,50,58)
setSpritePhysicsOn(Player,2)
setSpritePhysicsCanRotate(Player,0)
spr2 = CreateSprite ( 0 )
SetSpriteSize ( spr2, 10, -1 )
SetSpriteOffset ( spr2, 5, GetSpriteHeight(spr2)/2)
SetSpritePositionByOffset ( spr2, 5, 69 )
for n = 0 to 10
x = n*10
y = 69
ground[n] = CloneSprite ( spr2 )
SetSpritePositionByOffset ( ground[n], x, y)
SetSpritePhysicson ( ground[n], 1 )
Next n
do
for i=0 TO 10
Print (GetPhysicsCollision (Player, ground[i]))
next i
setSpritePhysicsVelocity(Player,GetVirtualJoystickX(1)*30, getSpritePhysicsVelocityY(Player))
Sync()
loop