ただSPを移動させると、画面の外まで行けちゃうじゃないですか? それを防ぐのに、画面の端以上は進めないように移動範囲を指定しますよね? それと同じ要領で、壁より先に進めないように移動範囲を指定すれば良いのでは?