具体的に言えば、このプログラムだと、自分の座標のBGデータが1の場合はキー入力を受け付けていないので動かないのです ループ内に、自分の左右のBG状態を予め調べた変数を用意して、キー入力+移動先の障害物の有無でIFを使えば大丈夫です