BGGETの式としては正しいですが、取得できるのはアトリビュート込みの値ですので注意です。
奥、というのはその移動をさせない、という意味でしょうか?
移動予定の座標を先に判定をして、移動可能なら実際にその座標に移動させます。
XX=0:YY=0
IF BUTTON(0)==#UP THEN YY=-2
~略(4方向処理)~
IF (BGGET(0,X+XX,Y+YY,1) AND &H999)==0 THEN X=X+XX:Y=Y+YY
SPSET 0,X,Y
みたいな感じで。
実際はキャラのサイズが16x16などの大きさなのに対して、BGGETは1ドットでしか判定しないので、キャラの4隅で4回判定するなどの処理が必要な場合が多いですが。
全部を1から説明するのはとても大変&スペースが全然足りない(笑)
絵を定義に設定するのはSPDEF、
それを呼び出して表示させるSPSET、
アニメさせるSPANIM
を一通り調べてやってみてはどうでしょう?
ちなみに正面の絵、足をそろえた絵にしておけば、2枚の絵をA,Bとすると、
A → B → A → Bの左右反転
と4枚の絵でアニメできるのでスムーズに歩いているように見えますよ。左右反転はプログラム側でやるので、必要ありません。