CHKCHR関数で当たり判定はボタン入力などにより上下、 左右の移動量を求めて移動先の位置が決まった後に 行うとよいでしょう。 移動できないキャラがあったら移動量を0にすれば 移動できないキャラにめり込むこともありません。