原点が左上にある16x16のキャラだと、BGGET(0,X+XX,Y+YY,1)はキャラの左上だけ当たり判定していますが、これだと左または上に壁があるとうまくいきますが、右や下に壁があると埋まりますよね。 なので、0,0、0,15、15,0、15,15の4隅で判定する場合は、 BGGET(0,X+XX,Y+YY,1) BGGET(0,X+XX+15,Y+YY,1) BGGET(0,X+XX,Y+YY+15,1) BGGET(0,X+XX+15,Y+YY+15,1) の4点がすべて0(もしくは通り抜けられるBGキャラ番号)の場合のみ、移動を許可する、という事です。 (実際は15だと大きすぎる場合もあるので調整を) ただ、上下左右のみ動くならこれでいいですが、ナナメに動ける場合(左右移動+ジャンプも含む)、X方向とY方向の移動処理は別々にやった方がいいと思います。