Crikey what a nightmare this was!!!
Try this for size :
set display mode 320,240,32
xpos#=16
ypos#=16
wallx#=200
wally#=208
walk=1
load image "mario.bmp",1
load image "wall.jpg",2
dim area(9,9)
for x= 0 to 9
for y= 0 to 9
read area(x,y)
next x
next y
do
cls
set cursor 200,0
print "mouse x=";mousex()
set cursor 200,10
print "mouse y=";mousey()
set cursor 200,20
print "xpos# ="; xpos#
set cursor 200,30
print "ypos# =";ypos#
set cursor 200,40
print "playerup =";playerup
set cursor 200,50
print "playerdown =";playerdown
set cursor 200,60
print "playerleft =";playerleft
set cursor 200,70
print "playerright =";playerright
set cursor 200,80
print "playerx =";playerx
set cursor 200,90
print "playery =";playery
set cursor 200,100
print "playerx#=";playerx#
set cursor 200,110
print "playery#=";playery#
sprite 1,xpos#,ypos#,1
set sprite 1,0,1
for x= 0 to 9
for y= 0 to 9
if area(x,y) = 2 then paste image area(x,y),x*16,y*16
next x
next y
PlayerX# = xpos# / 16
PlayerY# = ypos# / 16
PlayerX = Int(PlayerX#)
PlayerY = Int(PlayerY#)
PlayerLeft = 0
PlayerRight = 0
PlayerUp = 0
PlayerDown = 0
If PlayerX# = PlayerX
PlayerLeft = PlayerLeft + area(PlayerX - 1, PlayerY)
PlayerRight = PlayerRight + area(PlayerX + 1, PlayerY)
Else
PlayerUp = PlayerUp + area(PlayerX + 1, PlayerY)
If PlayerUp = 2 Then YPos# = YPos# + 1
PlayerDown = PlayerDown + area(PlayerX + 1, PlayerY + 1)
Endif
If PlayerY# = PlayerY
PlayerUp = PlayerUp + area(PlayerX, PlayerY-1)
PlayerDown = PlayerDown + area(PlayerX, PlayerY+1)
Else
PlayerRight = PlayerRight + area(PlayerX + 1, PlayerY + 1)
PlayerLeft = PlayerLeft + area(PlayerX, PlayerY + 1)
Endif
gosub _movement
sync
loop
_movement:
if upkey()=1
if playerup = 0
ypos#=ypos#-walk
playerdown = 0
endif
endif
if downkey()=1
if playerdown = 0
ypos#=ypos#+walk
playerup = 0
endif
endif
if rightkey() = 1
if playerright = 0
xpos#=xpos#+walk
playerleft = 0
endif
endif
if leftkey() = 1
if playerleft = 0
xpos#=xpos#-walk
playerright = 0
endif
endif
return
data 2,2,2,2,2,2,2,2,2,2
data 2,0,0,0,0,0,0,0,0,2
data 2,0,0,0,0,0,0,2,0,2
data 2,0,0,0,0,0,0,0,0,2
data 2,0,0,2,0,0,0,0,0,2
data 2,0,0,0,0,0,0,0,0,2
data 2,0,0,0,0,2,0,0,0,2
data 2,0,2,0,0,0,0,0,0,2
data 2,0,0,0,0,0,0,0,0,2
data 2,2,2,2,2,2,2,2,2,2