今回はリンゴのスクリプトを改造! 難易度★★☆☆☆ 前回の講座はこちらをご覧ください
ヨモギ殿、「落ちゲー」改造も今回でラストでござるな!
今回はリンゴをキャッチしたら、得点が増えたり、毒リンゴに触れたらゲームオーバーにするのん
おお!本物のゲームっぽいでござるな
完成すると、こんな感じ
これは!!ネコがリンゴを食べた音がリアル~!スコアが付いていると次はもっと高得点を目指そう!という気になるでござるよ
「スコア」をつけよう
それじゃあ、まずはリンゴをゲットしたらスコアを増やす方法を説明するのん。スプライトリストからAppleを選択しておくのん
「変数」カテゴリーから「変数をつくる」をクリック
新しい変数名に「スコア」と入力して「OK」をクリックすると、
新しく「スコア」という変数ができたでござるよ
スコアの左のチェックボックスにチェックが入っていると、ステージに「スコア」が表示するのん
ステージ上のスコアは好きな位置に移動できるでござるよ
スコアの変数が出来たら、スクリプトを組んでいくのん。まず「制御」カテゴリーから「もし~なら」ブロックを持ってきて
「スプライト1に触れた」ブロックを、「もし~なら」に入れるのん
スプライト1はネコ殿のことでござるな。リンゴがネコ殿に触れたら得点が入るのでござるな
そうなのん。「スコアを1ずつ変える」を入れてあげるのん
「もしスプライト1に触れたならスコアを1ずつ増やす」のスクリプトが出来たら、「~まで繰り返す」の中に入れるのん
ブロックを入れる場所を間違えやすいから、よーく上の絵を見て確認するでござるよ!
さっき、「スプライト1に触れた」を外して、ぽっかり穴が開いたブロックを取り出して、
「端に触れた」ブロックだけ、元に戻すのん
いらなくなった「または」ブロックは削除するでござる
では、さっそく試してみるでござるよ!
ありゃりゃ??ネコ殿がリンゴをゲットすると、確かにスコアは増えるけど、スコアがとんでもない数になるし、リンゴがネコをすり抜けるのもおかしいでござるな
リンゴがネコに触れても、リンゴが消えないから、触れている間中、スコアが入り続けるのん
どうすればよいでござるか?
リンゴがネコに触れたら、リンゴを消してあげれば良いのん。「このクローンを削除する」ブロックを「スコアを1ずつ変える」の下に付けてあげるのん
今度はちゃんと1点ずつ増えて、イイ感じでござるよ!
ゲームを新しくスタートする時にはスコアをリセットするのん。必ず「スコアを0(ゼロ)にする」ブロックを、ここに入れておくのん
「ゲームオーバー」をつけよう
次は、毒リンゴに触れたらゲームオーバーにするのん
今度は「Apple2」にスクリプトを追加していくでござるか?
その前に、”ゲーム―オーバー”という文字を新しくスプライトで作るのん。スプライトリストからスプライト「描く」を選択、
お、これは前にも見たことあるでござるよ。ここでお絵かきできるでござるね
今回は文字を入れるので「テキストツール」を使うのん
英語で「GameOver」と入力したら、色を好きな色(今回は赤)にして
フォントも好きなものを選ぶのん(今回はMaker)
文字の大きさはどうやって変えるでござるか?
「選択ツール」を使って、文字の四隅の青い丸をマウスでドラッグすると大きさを好きに変えることができるのん
「ゲームオーバー」も文字は大きい方が良さそうでござるな
ゲームオーバーの文字は最初は隠しておくのん
次にスプライトリストからApple2を選んで
Appleと同じように「もし~なら」ブロックの条件に「スプライト1に触れた」を入れるのん
毒リンゴに触れたらゲームオーバーにするには、どのブロックを使うでござるか?
色々なプログラムが考えられるけど、今回は「メッセージ」ブロックを使うのん
「メッセージ」?
「メッセージ」は、他のスプライトに指示を送るときに使うのん。「イベント」カテゴリーから「メッセージ1を送る」を「もし~なら」ブロックに入れてあげて、
メッセージの名前を分かりやすく「ゲームオーバー」に変えてあげるのん
そうしたら、Appleの時と同じように、「~まで繰り返す」の中に入れるでござるよ
次は、さっき作ったゲームオーバーのスプライトを選んで、
スプライトの名前も”GameOver”に変えてあげるのん
GameOverのスプライトに、メッセージを受け取るスクリプトを作っていくのん。「イベント」カテゴリーから「ゲームオーバーを受け取ったとき」ブロックを持ってきて
スプライトの座標を指定して、「表示する」ブロックを付けるのん
さっき、毒リンゴにネコ殿が触れたら、「ゲームオーバー」のメッセージを送るをプログラムしておいたから、こっちではそのメッセージを受け取ったら、画面に表示する、という訳でござるな
そうなのん。音々ちゃんスゴイ。ちゃんとメッセージブロックのしくみを理解してるのん!
えへへ、それほどでも…あるでござるよ
“GameOver”を表示したら、「イベント」カテゴリーから「すべてを止める」を付けてあげるのん
「効果音」をつけよう
スコアも付いて、毒リンゴに触れるとゲームオーバーになったでござるが、何か物足りないでござるな…
それは、きっと、ゲームに”音”が無いからなのん
それでござる!リンゴをゲットした時や、ゲームオーバーになった時に効果音が必要でござるよ
それじゃあ、「落ちゲー」改造の最後、”音”の付け方を説明していくのん
ワクワク
と言っても、リンゴをゲットした時の効果音は、「音」カテゴリーから「Chompも音を鳴らす」ブロックを付けるだけなのん
拍子抜けするくらいカンタンでござったな…Chompとはどういう意味でござるか?
「むしゃむしゃ食べる」という意味なのん。スプライトには予め音が付いている場合が多いけど、リンゴのスプライトにはこのChompが付いてるのん
な~るほど!ガブっとリンゴに噛り付いた時の音でござるな
次はゲームオーバーの音を付けるのん。スプライトリストでGameOverを選んで、
「音」タブを開くのん
GameOverは新しく作ったスプライトでござるが、「ポップ」という音が付いているでござるな
でも、この音はゲームオーバーには似合わないから別の音を使うのん。「音を選ぶ」から、
ほえ~Scratchにはたーくんの音が入っているでござるな!
その中から「Lose」を選ぶのん
お!音のリストに「Lose」が追加されたでござるよ
「ポップの音を鳴らす」ブロックをクリックして追加した”Lose”を選択、さっきの「表示する」と「すべてを止める」の間に入れるのん
これで、ゲームオーバーが表示したら、音楽が鳴って…、あれ音が鳴ったか鳴らないか分からないうちにゲームが止まってしまったでござる
うん、音ブロックの注意点。「~の音を鳴らす」ブロックは、音を鳴らし始めたと同時に次の(下の)ブロックに処理が移るのん
下のブロックは「すべてを止める」だから、音も止めたでござるね
そうなのん。だから、音を最後まで鳴らしたい時は、こっちのブロック、「終わるまで~の音を鳴らす」を使うのん
今度はちゃんとLoseの音が最後まで鳴っているでござるが、鳴り終わるまでにネコを操作できて、リンゴもゲットできるでござるよ、これじゃあゲームオーバーじゃないでござる
ここで、「メッセージ」ブロックが役に立つのん。「ゲームオーバー」のメッセージを受け取ったら、Loseの音を鳴らすスクリプト以外のスクリプトを止めてあげるのん
???…どうするでござるか?
まず、Appleのスプライトに「ゲームオーバーを受け取ったとき」ブロックを持ってきて
その下に「すべてを止める」ブロックをつないで、「スプライトの他のスクリプトを止める」に変えてあげるのん
な~るほど、これで、リンゴが落下するスクリプトを止めることができるでござるな
あとは、ネコとApple2にも同じスクリプトを追加してあげるのん
これで、ゲームオーバーになっても、ちゃんと音も最後まで鳴るし、リンゴやネコ殿も止まったままで、本当に終わったー!って感じになったでござるよ
これで、「落ちゲー」の改造も一旦終了なのん。あとは自分のアイデアでどんどん改造してみると良いのん
拙者はリンゴだけでは物足りないので、ケーキやらお寿司なんかも食べたいのー、いやいや焼肉も捨てがたいかのー
音々ちゃん……食いしん坊なのん
Scratchをもっと知りたい方に!おススメの無料オンライン講座
スイッチオンラボでScratchを学ぼう!
スイッチオンラボでは、無料体験会も開催しておりますので、ぜひお気軽にご参加ください。
コメント