見出し画像

【Scratch】第3回 ブロック崩しを改良してみよう(2/2)

こんにちは。ブロック崩しの改良版の2回目になります。
ちょっと難しくなりますがこの回で完成させましょう!

1.ボールのコードをクローンに変更

アイテムを取る事でボールを2つにするのですが、対応方法として2つあります。
1つはボールのスプライト画像を増やす。もう1つはクローンをする。
スプライト画像を増やすやり方は、「スプライトを選ぶ」で追加した後にコードをコピーして貼り付ければOKです!
ただ、このやり方では問題があります。
1つ追加するだけでしたらいいのですが、もし10個追加したい場合はどうでしょうか?
スプライトを10個用意して、コードをコピーしていくのは非常に大変な作業になります。
このやり方では、これからゲームをもっと面白くさせるためには大変になってしまうのでクローンするやり方で対応していきます。
クローンですと、10個でも100個増やす事も簡単なのでオススメです。

図1. ボールのコード

①ゲーム開始した時

ゲーム開始すると「ゲームスタート」のメッセージを受け取るので、第2回の時はアイテムを表示させるコードを書いていました。
今回はそのコードは②番の「クローンされたとき」に移動されているので、①番には自分自身のクローンを作ります。
クローンを作る事で②番のコードが実行されるので、表示されるようになります。

②クローンされた時

コードが長く見えますが、②番のコードから移動させて追加されたので初期化とブロックに触れたコードの追加になります。
追加されたコードについて書いていきます。

・「ボールの個数を1ずつ変える」ブロック
変数「ボールの個数」を追加してください。
「ボールの個数」変数はクローンするたびに1ずつ足されていきますので、この変数は表示されているボールの数になります。

次にボールの初期化を行います。
ボールがクローンされたタイミングでx座標は0、y座標は-120に移動します。
角度を上方向に進むように-80から80度の角度に向けます。
その後は「ずっと」ブロックでボールを進めますが、「ブロックを触れたなら」が追加されています。
ブロックに触れた場合は跳ね返るように、180-向きの方向に変えて下さい。

新しく追加した変数「ボールの個数」は、ゲーム開始時は1ですがアイテムを取ってボールを増やすとその分増えていきます。
0の時はボールが全部一番下に落ちてしまった時なので「ゲームオーバー」のメッセージを送ります。

2.パドルを大きくするコードの追加

図2.パドルのコード

①ゲーム開始時

図3.パドルのスプライトのコスチューム

①に「コスチュームをふつうにする」ブロックが追加されています。
前回のパドルのスプライトに、「おおきい」画像を追加して図3のようにコスチュームがなっています。
ゲーム開始時は「ふつう」の画像にしておかないとダメなので、①では「ふつう」に設定しておきます。

・「パドルを大きくするを受け取ったとき」ブロック
パドルを大きくするアイテムを受け取った時は「パドルを大きくする」メッセージが送信されますので、パドルのスプライトで受け取りコスチュームを切り替えていきます。

・「コスチュームを大きいにする」ブロック
コスチュームを切り替えて、パドルが大きくなります。

・「5秒待つ」ブロック
大きくなっている時間は5秒に設定してあります。
5秒経ったらふつうのパドルのサイズに戻します。
大きいサイズの時間をもっと増やしたい場合は数字を変えてみて下さい。

・「コスチュームをふつうにする」ブロック
パドルを「ふつう」に切り替えます。

3.背景のコードを修正

図4.背景のコード

アイテムの対応が終わりましたので、もうゲームができる!っと思ったかもしれませんが、実はプレイしてみるとすぐにバグが発生してしまいます。
スペースキーを押しているとかなりボールが出てきてしまったり・・・。
原因はボールをクローンに対応した事で、このバグは発生するようになりました。
スペースキーを一回押したつもりでも、Scratch側では押しっぱなしの状態と判断されて「ゲームスタート」メッセージを何回も送ってしまいます。
これは直さないとゲームになりませんですので、直していきます。

・「「「スペースキーが押されたなら」ではない」まで待つ」ブロック
・「スペースキーが押されたまで待つ」
2つのブロックが新しく追加されています。
この2つのブロックの書き方をすると、スペースキーが押しっぱなしでも1回しか「ゲームスタート」メッセージが送られません。
内容を理解するのは難しいと思うので、これからのゲームでも1回だけ押した状態が欲しい場合はこのブロックの作り方をそのまま真似してみて下さい。

第2回の簡単ブロックの時は、背景に「ボールが当たった場合を受け取ったとき」ブロックのコードがありました。
今回は削除して下さい。
このコードはボールのスプライトに移動させたので必要なくなりました。


完成動画


まとめ

これでブロック崩しの改良版は終了となります!
難しかったと思いますが、どうでしょうか?
アイテムを出現させる所は簡単だったと思いますが、ボールをクローンに変更。
それによって発生した不具合の修正が大変だったと思います。

バージョンアップさせる場合は今後の事も考えて対応していくといいかもしれません。
ボールを2個だった場合だけ対応させるだけではなく、次に3,4個に増やした場合も簡単に対応できるかどうか?
パドルをさらに小さいバージョンも追加した場合、簡単に対応できるかどうか?
元々できているゲームなどをリミックスなどしてみて触って慣れるといいかもしれません。

【Scratch】第3回 ブロック崩しを改良してみよう(1/2)


この記事が気に入ったらサポートをしてみませんか?