前回、OpenTKで迷路をつくりました。

OpenTKで迷路をつくる

壁がある場合、それ以上前に進めないのが普通なのですが、前回のプログラムでは壁を通り抜けて移動することができました。今回は移動しようとしている方向に壁がある場合は移動できないようにします。移動できないことを知らせるために音も鳴らします。

移動するときに本当に移動できるか確認して、移動できる場合だけ移動します。自作メソッド IsInsideOfWalls(double x, double z)は移動先が壁または壁に極めて近い位置であるかどうかを調べるためのメソッドです。壁の内部、または周囲0.1であればtrueを返します。

縦向き、横向きの壁の位置をすべて取得して、それと移動先の座標を比較して結果を返しています。

あとは移動するときにIsInsideOfWallsメソッドを呼び出し、これがfalseを返すときだけ移動の処理を行ないます。移動できないときは音を鳴らします。