ゲーム開始直後にゲームオーバー!?原因は「端」にありました
左端から右端まで走るゲームを作ったのに、スタートした瞬間にゲームオーバーになってしまいました。
「まだ1歩も動いていないのに、どうして?」
プログラムを見直しても、ゲームオーバーの条件は

もし端に触れたなら
となっていて、一見間違っていないように見えます。
では、なぜゲームオーバーになってしまうのでしょうか。
原因は「最初から端に触れていた」
今回の原因は、キャラクターのスタート位置でした。

スタート地点を画面の一番左端にしていたため、ゲーム開始直後からすでに「端に触れた」という条件を満たしてしまっていたのです。
Scratchでは、ゲームが始まるとすぐにプログラムが実行されます。
そのため、プレイヤーが動いていなくても、最初から条件を満たしていればゲームオーバーになってしまいます。
解決方法
解決方法はいくつかあります。
- スタート位置を少し右へずらす

- スタート地点では端判定を行わないようにする

今回のようなレースゲームであれば、スタート位置を端から少し内側に置くのが一番簡単でおすすめです。
今回のポイント
今回のバグは、プログラム自体が間違っていたわけではありません。
「ゲーム開始時の状態」を考えていなかったことが原因です。
Scratchでは、条件式だけでなく
「ゲーム開始直後はどういう状態になっているか」
を意識することも大切です。
ゲームが思った通りに動かないときは、ゲーム開始直後のキャラクターの位置や変数の値も確認してみましょう。
🕵️ バグ探偵ポイント
ゲームが始まる前から条件を満たしていないか?
プログラムだけでなく、「ゲーム開始時の状態」を確認することが、バグを見つける近道です。


体験会詳細
お問い合わせ
