deltax#=0
deltay#=0
speed#=0
If KeyDown(200) Then deltay#=-1
If KeyDown(208) Then deltay#=1
If KeyDown(205) Then deltax#=1
If KeyDown(203) Then deltax#=-1
(громоздко конечно)
If KeyDown(203) Or KeyDown(208) Or KeyDown(205) Or KeyDown(200) Then
speed#=5.0
EndIf
(пусть px - временные, а x - окончательные координаты)
px=x+deltax*speed
py=y+deltay*speed
If px<0 Then px=1280
If px>1280 Then px=0
If py<0 Then py=1024
If py>1024 Then py=0
***отдельно где-то, где все функции***
Function CollideStones(px,py)
For s.stone=Each stone
(коллизия или проверка координат, все равно вроде)
If ImagesCollide(player,px,py,0,stoneimage,s\x, s\y, 0)
Return True
EndIf
Next
Return False
End Function
***
If Not CollideStones(px,py) then
x=px
y=py
Endif
Вот, я бы так переделал.