あまりキレイな修正ではありませんが、もしかするとこうでしょうか?
地形とそのアタリ判定をBMP画像から拾うものだとしています。
キャラを動かす部分が無かったので、仮に28行目辺りに作ってあります。
buffer 2,160,32 :cls 1 :color 64,64,64 :mes "自機アニメアニメ壁壁" ;おそらくここにpicload、自キャラの4コマアニメ(?)と壁が描かれる
buffer 3,30,10 :font "",10 :mes "木" ;地形データ。rval=0、gval=0、bval=0の場所に壁を作る
buffer 4,640,480
repeat 10
Y=cnt
repeat 30
gsel 3 :pget cnt,Y :gsel 4
if (rval=0)&(gval=0)&(bval=0) :pos cnt*32,Y*32 :gcopy 2,128,0,32,32
loop
loop
gsel 0
gmode 2
screen 0,1024,480
gmode 2
MO=0
MOO=0
MX=200
repeat
redraw 0
T+=1
stick K,15
if K&1 :MX-=2
if K&2 :MY-=2
if K&4 :MX+=2
if K&8 :MY+=2
gsel 3 :pget MX+32/32,MY+16/32 :gsel 0 ;キャラの右の位置を判定 修正箇所はこの8行
if (rval=0)&(gval=0)&(bval=0) :MX=OMX-4
gsel 3 :pget MX+16/32,MY+32/32 :gsel 0 ;キャラの下の位置を判定
if (rval=0)&(gval=0)&(bval=0) :MY=OMY-4
gsel 3 :pget MX/32,MY+16/32 :gsel 0 ;キャラの左の位置を判定
if (rval=0)&(gval=0)&(bval=0) :MX=OMX+4
gsel 3 :pget MX+16/32,MY/32 :gsel 0 ;キャラの上の位置を判定
if (rval=0)&(gval=0)&(bval=0) :MY=OMY+4
OMX=MX
OMY=MY
pos 0,0 :gcopy 4,0,0,640,480
pos MX,MY :gcopy 2,32*MO,32*MOO,32,32
redraw 1
await 30
loop
rvalなどからHSP2のスクリプトであると分かりますが、HSP2用と明記すると返信をもらい易いと思います。