先日も書いた気がするのですが、「移動先に何があるのか」を調べるようにすれば出来ますよ。
@LOOP
KX=0:KY=0
B=BUTTON()
IF B==#UP THEN KY=Y-1
IF B==#RIGHT THEN KX=X+1
IF B==#DOWN THEN KY=Y+1
IF B==#LEFT THEN KX=X-1
A=BGGET(0,KX,KY)
IF A==101 THEN @LOOP
X=KX:Y=KY
SPOFS 0,X,Y
GOTO @LOOP
やっつけですがこんな風に。