リトライできるようにしよう
ゲームのリトライができるようにしましょう。
ゲームオーバー画面でマウスクリックすると、ゲームを最初から開始できるようにしていきます。
マウスクリックを検知するためには、mousePressed
関数が使えるのでした。
mousePressed
関数の部分を、次のように変更してください。
function mousePressed() { if (gameState === "start") { gameState = "play"; } else if (gameState === "gameover") { gameState = "play"; } }
これで、ゲームオーバー画面のときにマウスクリックするとゲームが開始するようになります。
ゲームを起動して、確かめてみましょう。
どうでしたか?
ゲームは動いたけれど、何かおかしいですね。
どうやら、ゲームの続きから再開してしまっているようです。
現時点では、コースもスコアもそのままの状態で、ゲームが再開してしまいます。
そこで、リトライのときはコースとスコアを初期状態にリセットするようにしましょう。
まず、setup
関数を次のように変更してください。
function setup() { createCanvas(400, 400); rectMode(CENTER); textAlign(CENTER, CENTER); resetGame(); } function resetGame() { score = 0; createRoads(); }
新しくresetGame
関数を定義し、setup
関数から呼び出すようにしました。
そして元々 setup
関数から呼び出していた createRoads
関数を、 resetGame
関数から呼び出すようにしました。
さらに、score
を0にリセットする処理も追加しました。
次に、mousePressed
関数の部分を、次のように変更してください。
function mousePressed() { if (gameState === "start") { gameState = "play"; } else if (gameState === "gameover") { resetGame(); gameState = "play"; } }
リトライのときは、 resetGame
関数を実行するようにしました。
ここまでできたらゲームを起動してみましょう。
無事にリトライができるようになったと思います!
いよいよ大詰めです。
最後に、プレイヤーとして画像を表示しましょう!