スクラッチでゲームなどを作成していると、思い通りの動きにならないことが、よくあります。
これらを全て「バグ」という言葉で片付けてしまうのは、実は語弊(間違い)があるのですが、今回の記事では、複雑な使い分けはせず「バグ」という言葉のみを使っていきます。
正しく動作しないプログラムを修正してレベルアップしていきましょう!
バグレベル1 〜スプライトの動き〜
それでは、迷路のゲームを作成してみましょう。
まずは背景でコースを描いていきます。
色は黒以外でもいいのですが、一色にした方がプログラムが作りやすいです。
次に「プレイヤー」と「ゴール」を作成します。
(虫やカニなどがありますが、それは無視してください)
プレイヤーのコードも同様に作成しましょう。
この時、「〜色に触れたなら」の色は自分が作成したコースの色にしてくださいね。
完成したら実行してみてください。
・・・あれ?
プレイヤーの挙動がおかしいです…。
ずっと動いています。
この「バグレベル1」のコードを、なるべく答えを見ずに修正してみてください。
答えはこちら
7行目の「2歩動かす」ブロックを消す
どうですか?
自分の力で解決できましたか?
バグレベル2 〜クローンの動き〜
レベル2は少し難しいので、頑張ってくださいね。
まずはキャラクターを作成し、右か左の矢印キーで動くようなコードを作成しましょう。
次にスペースキーが押されたら、クローンのボールが発射されるコードを作成してみます。
完成したら実行してみてください。
なにやら色々変ですが、スペースキーが押されたら、ボールが連続で発射されます。
これはこれで悪くは無いのですが、今回は「スペースキー1回につき、1つずつ発射」したいと思います。
バグレベル2のコードを修正してみましょう!
答えのコードを表示する
ポイントは「〜ではないまで待つ」です
自力で出来ましたか?
それでは最終問題、バグレベル3に進みましょう。
引き続き、ボールのクローンのコードを使っていきます。
バグレベル3 〜クローンの進む方向が変わる〜
こちらはバグレベル2を修正したコードです。
スペースキーを1度押すと1つのボールが発射されるようになりました。
しかし、ここでもうひとつのバグに気が付きます。
ボール発射後にステージの端に触れる前に逆方向を向いてみてください。
すると、その方向にボールも付いて来てしまいます。
この問題がバグレベル3です。
さっそく修正してみましょう。
答えのコードを表示する
ポイントは「何をもとに条件を分けて、どう繰り返すか」です
どうですか?修正できましたか?
応用的な内容で、少し頭をひねる難しい問題でしたね。
おまけ 〜コードを見やすく分かりやすくする〜
おまけなので答えを見せますが、先ほどまでのコードは「端に触れたまで繰り返す」のブロックが2つあったり、「スプライト1の向き=90(-90)なら」と条件も少し分かりにくいコードになっていました。
他の人に見せる場合はもちろん、自分だけしか見ない作品であっても、コードを見やすく分かりやすくすることは、とても大切です。
半年後の自分が見た時に「これ、なんだっけ?どういう意味だっけ?」となるコードは、いい作り方とは言えません。
作りながら、少しずつ意識することで、どんどんプログラミングが上達していきますので、ぜひ試してみてください。
まとめ
バグが発生した際の考え方のポイントや、修正方法などについて、練習問題形式で紹介しました。
レベル3まで全て、答えを見ずに修正できたあなたは、スクラッチマスターに着々と近づいています。
答えを見てしまったという、あなたも安心してください。
一歩ずつ成長していけば大丈夫です。
プログラミングでは、思ったように動かない(バグが発生する)とイライラします。
しかしそれが、思った通りに修正できた時の達成感はプログラミングの醍醐味でもあります。
これからも楽しくスクラッチを学んでいきましょう( ^∀^)
コメント