僕が実践したことがあるのはBGGETで移動先を調べる方法です。BGGETで指定した座標にあるマップチップの番号がわかるので、それをIF文で判別し、障害物だったら移動をキャンセルするという感じです。