質問の返事がないので基本構造は理解されているものとして書きますね。 BGに当たったら突っ込ませないようにするには、 1 移動先が移動不可なら移動させないようにする。 2 移動先が移動不可の場合、移動出来るギリギリまで移動させる。(補正する) があります。1の方が簡単で、移動前(XY座標に加算する前)にBGGETでXY座標に加算後(移動後)の位置を指定して、そこが移動可能だったら実際の座標に加算して、移動不可能なら加算しない(移動しない)ようにします。 2はちょっと難しくなり、何処まで移動出来るかを計算して求める必要が出てきます。そしてそれは移動方向などによっても変わる(例えば右移動なら戻すのは左、左移動なら戻すのは右になる)ので、その辺りのチェックも必要になります。 という感じになるので、その辺もふまえて処理する必要がありますね。