チェックポイントを通過すると点数が増え、レッドカーと接触したらミスとなります。当たり判定と点数計算の処理をおこないます。

レッドカーとの接触を判定するのであれば両者の距離が1.0以下になっているかどうかを調べればよいので、以下のコードでよいのですが、ちょっとした問題がおきます。ゲーム開始早々、すぐに捕まってしまうのです。

これではすぐにゲームが終わってしまいます。そこで設定を少し変えます。

[スタート]がクリックされたら初期設定を行ないます。timer.Intervalの設定とマイカー、レッドカー、チェックポイントを初期の位置に設定します。それからマイカーとレッドカーの初期位置が近すぎるのでゲーム開始から3秒間はレッドカーは動かないものとします。

GameStart()メソッド内で[スタート]がクリックされたときの初期設定をしています。

ゲーム中にチェックポイントを通過したらチェックポイントのフィールド変数 Clearedをtrueにします。するとそのチェックポイントは表示されなくなります。そしてすべてのチェックポイントを通過していればステージクリアとなります。

それから点数の計算も必要です。

ラリーX – Wikipediaによると、

ノーミスで連続してチェックポイントを通過するごとに100、200…と100点ずつ得点が上昇していく。また「スペシャルチェックポイント」(黄旗に赤字でS表記)が各面1箇所存在し、取るとこれ以降のチェックポイント通過得点が2倍になる。

とありますが、スペシャルチェックポイントは省略(ゴメンナサイ)してノーミスで連続して通過した場合の得点増加処理だけおこないます。