マップの当たり判定について質問したいと思います。
現在考えているマップはこんな感じなのですが(左下の赤いやつがキャラの大きさです)

マップとキャラの当たり判定に下の2値画像を使おうと思っています。

で、今考えている当たり判定のアルゴリズムなのですが・・・
1. 当たり判定用の画像に描かれている線の節々の座標を取得

2. 点を中心に3×3のエリア内で白い点が隣接している方向にある点同士を繋げる
そして法線ベクトルを取得

3. 自分を円として考え、円と線分の当たり判定を行い、法線ベクトルの角度が70~90°
であれば壁と判断して進めず、進めるのであれば法線を90°傾けた方向に移動

後は梯子だったり敵だったりを付けていけばいいと考えたのですが
とても実現なんて出来そうにありません!
というわけで何かマップと当たり判定を行う良い手段はありませんか?
坂道も再現できると嬉しいのですが・・・よろしくお願いします。