本物のRally-Xには燃料計があります。現在作成中のRally-Xもどきにも燃料計を表示させます。

ラリーX – Wikipediaによると、

マイカーには燃料計があり時間経過とともに減少する。煙幕を発生させるとその分だけさらに減少する。燃料切れになってもミスにはならないが、スピードが劇的に落ちるので、レッドカーに追いつかれることが必至の状況に陥る。ラリーXでは自車がかなり高燃費であり、特にチャレンジングステージでは最速ルートでフラッグを取らないと途中で燃料が切れる可能性が極めて高い。

Rally-Xらしくするために燃料計をつくります。

燃料はステージクリア時の得点にも影響します。そこで燃料はどれくらい存在するのか? どのようなペースで減っていくのかを決めます。

道路はブロックが連続して繋がることで構成されています。だったらブロックの総数をもとに決めればいいのではないのでしょうか? ブロックの総数の0.7倍くらいにして(すべてのチェックポイントを通過するためにすべての道路を通過する必要はないので0.7倍が適切だと思う)ブロックを通過するたびに1単位ずつ減っていくという仕様にします。

燃料計を追加したのでレイアウトがちょっと変更になりました。ラベルの背景をGLControlの背景色に合わせています。またスコアは太字で表示しています。

InitFuel()メソッドは消費された燃料をリセットして満タンの状態にするためのメソッドです。最大燃料の計算方法はコメントのとおりです。

マイカーが移動すると燃料が消費されます。燃料が切れかけたら(20%以下になったら)移動速度を半分にして燃料が切れたら4分の1にします(燃料がきれたら普通は動けなくなるものなのだが・・・)。

スモークスクリーンは通常の走行に対して燃料を消費量が多いです。燃料がきれたらスモークスクリーンは使えなくなります。

ミスをしたら燃料が満タン状態の新しいマイカーが現れ、ゲームを再開します。

ステージクリア時には残りの燃料がボーナスポイントになります。点数も一気に増えるのではなく、カウンターの値が上昇していくように小刻みで増えていきます。