spset 0,tmpID 'tmpIDはspdefの番号
sphome 0,0,0 '左上
l=0 'BGのレイヤ
while 1
b=button()
spofs 0 out sx,sy
if b and #left then dx=-1
if b and #right then dx=1
if bgget(L,dx+8,dy+17,1) then break '落とし穴に落ちた
spofs 0,sx+dx,sy
vsync
wend
オマケで書くと、アトリビュートというのは要するにBGキャラ番号に対応した配列だったりします。BGキャラ番号は数字になるので、その数字を添字にした配列を用意して、その配列の内容によって、そのBGキャラに当たりがあるか判定している感じですね。
アトリビュートの配列がATRだとすると、
IF ATR[BGGET(0,X,Y)] THEN
'アトリビュートが1以上(×)のときの処理
ENDIF
みたいに判定出来るので、うまく使うと便利でもあるんですけどね。