
キミも未来のトビラをひらこう!!
無数に現れるGhostを倒すゲームを作ろう
今回のレッスンで作るものを確認していくよ。 怖い森の背景にGhostが出てきて、クリックしてGhostを倒すというゲームを作っていくよ!
これまで使ったことのない演算の中にある乱数や制御の中にある[クローン]という機能を使っていくよ。
前のレッスンで使った、変数や演算のブロックも使っていくので復習をしながらすすめていこう! 実際に作っていこう!
アニメーションにつかう背景・スプライトを用意して設定していこう
まずは、スプライトを確認するよ。 1つ設定されていればOKだよ。
次に、コスチュームを確認しよう。 Ghost-aのコスチューム Ghost-cのコスチューム
次に、背景を確認しよう。 合計2つ設定されていればOKだよ。
「GAME CLEAR」と書かれていないノーマルの背景を選択して完了だよ! ここまで、みんなの画面でもやってみよう!
キーボードでRocketshipを操作して左右に動かそう
クローンをつかってGhostをたくさん出現させよう
今回作るのは、Ghostがたくさん出てくるゲームだったね! Ghostをいっぱい出すにはどうしたらいいか考えてみよう!
簡単な方法があるんだよ! 今回、Ghostをたくさん出すには、制御の中の[自分自身のクローンを作る]というブロックを使っていくよ。
このクローンのブロックを使うと、実行したスプライトのコピーを作ることができるんだ。 ためしに、Ghostのスプライトのクローンを作ってみよう。 まずは、Ghostのスプライトを選択。
[自分自身のクローンを作る]をスクリプトエリアに追加して、実行してみよう。 クリックした時はなにも変わらないように見えるけど、ステージのGhostをドラッグして移動してみると2つにふえているね! もう1回実行すると、クローンがさらに作られて3つに増えるよ!
クローンを作るたびにGhostが増えるんだ。 何個クローンを作っても、左下のスプライトエリアにはGhostは1つしかないよね。 このように、スプライトエリアのスプライトをふやさず、ステージ上だけでスプライトをふやすのがクローンの機能だよ。
ふえたクローンは赤いストップボタンをおすと全て消えるよ。 クローンはゲームを実行している間だけ使える機能なんだ。
ゲームがはじまったら2秒おきにGhostのクローンを作るようにしていこう。 これで、 Ghostがいっぱい出てくるようになったけれど、同じ場所にかさなって出てくるのではなくて、いろんな場所に出したいね。 つぎは、いろんな場所に出てくるやり方を見ていくよ。
乱数をつかって色々な場所にGhostを出現させよう
ここからGhostがいろんな場所にいっぱい出現するようにしていくよ。 これは、演算(えんざん)の中にある [~から~までの乱数]というブロックを使っていくよ
乱数について説明するね。 例えば、サイコロを振ると1から6までのどれかの目が出るけど、 どの目が出るかはふってみないとわからないよね? あらかじめ結果がわからないランダムな数のことを「乱数」と言うんだよ。 実際に乱数を作るには、演算の中にある1から10までの乱数を使っていくよ。 このブロックだと、1から10までの目があるサイコロをふるように、1から10の間の数をランダムに出すことができるようになるよ。
乱数を使ってクローンしたGhostをランダムな位置に出現させよう。 クローンされた時に出現する位置を指定したいから、制御の中にある[クローンされたとき] というブロックを使って、クローンされたタイミングを決めるよ!
つぎに動きの中にある、 [x座標を~、y座標を~にする]のブロックをつなげて、x座標を乱数を使って-240から240までの乱数、y座標を-180から180までの乱数にしよう。
これで、クローンされた時に、乱数を使って決められたランダムなx座標y座標に、Ghostのクローンが出現するようになるよ! ゲームをスタートして確認してみよう。
いろんな場所に出てくるようになったね! クローンして出てきたGhostの位置を移動したり、見た目を変えたりしても、親のスプライトや他のクローンは変わらないよ。
表示されるスプライトをクローンされたスプライトだけにしよう
前のチャプターで作った、クローンされたときのブロックはクローンされたスプライトでしか実行されないよ。 一方で、グリーンフラッグがクリックされたときのブロックは親のスプライトでしか実行されないんだ。
わかりやすくするために、ゲーム中はクローンのスプライトだけを表示するようにしよう。
親のスプライトを隠すには、見た目の中の[隠す]のブロックを使えばできるね。 ただし、親のスプライトを隠したままクローンすると、隠された状態でクローンされるんだ。 だから、クローンされたあとに[表示する]をおいて、クローンされたGhostだけが表示されるようにしよう!
ゲームをスタートしてみよう。 Ghostがいろいろな場所に現れたかな?
クリックしたらGhostが倒されるようにしよう
ここまででクローンされたGhostがいっぱい出てくるようになったね。 つぎに、このGhostをクリックしたらたおせるようにしていこう。
まずは、クリックした時にコスチュームを変えるようにしていくよ。
これでクローンされたGhostがクリックされた時にヒットのコスチュームに変わって、削除されるようになったね。
変数をつかって得点計算ができるようにしよう
シューティングゲームの時と同じように、変数を使ってGhostを倒したら点数が入るようにしていこう。
まず、データの中の変数を作るで変数を作って、「得点」という名前をつけよう。 今回も全てのスプライト用を選択しておこう。
Ghostをクリックして倒したら、点数が入るように、 Ghostが倒されるスクリプトに得点がふえるようにブロックを追加しよう。
これで、 Ghostが倒された時に得点が増えていくようになったね。
ただ、スタートした時の得点は0からにしたいから、グリーンフラッグがクリックされたときのスクリプトに[得点を0にする]を追加して、スタートの時点では得点が0になるようにしよう!
これで、ゲームをスタートしてみよう! うまくいったように見えるけど、倒されたGhostをクリックし続けても点数が入るようになってしまっているよ!
これではゲームとしてはだめだよね。 だから、 Ghostを1回倒したら、1点しか入らないようにしていこう。
得点を足す前に、そのGhostがまだクリックされていないかどうかをチェックしてから得点を入れれば1回につき1点しかはいらないよね。 まだクリックされていないかは、コスチュームの状態で判断しよう! コスチュームがノーマルの時につまり、コスチュームの番号が1の時であればまだクリックされていない。 ということが分かるよね。
コスチュームの番号は、スプライトのコスチュームのところからしらべられたね。
なにで、[もし~なら~]を使って、コスチュームがノーマルの時にクリックされた時だけを得点にするようにしよう。
これで、倒されたGhostがクリックされても得点が入らないようになったよ! ゲームをスタートして確認してみよう。
変数で得点を数えてゲームのクリアを作ろう
最後に得点を数えて5点になったらゲームをクリアにする動きを作っていこう。
シューティングゲームの時にも作ったように、ゲームのクリアには演算の中の[~>~]を使おう。 5点になった時、つまり得点が4を越えたら終了だね。
これでクリアになる条件は判別することができるね。 そして、クリアにした時には[背景_クリア]の背景にして、すべてのスクリプトを止められるようにしよう。
背景の変更は、見えるの中の[背景を~にする]、スクリプトを止めるのは、制御の中の[すべてを止める]で設定できるね! スクリプトを追加しよう。
これで、ゲームクリアのルールとクリアした時のうごきが完成したね! さいごにスタートした時に、背景がノーマルの背景になるようにスタートの時の背景を指定してあげよう。
これでゲームは完成だよ! グリーンフラッグをおしてゲームをスタートさせてみよう!
さいごに、ここまで学んだことをおさらいしてみよう。 このレッスンではまた新しいスクリプトを勉強したね。 制御の中のクローンのブロックを使うことで、スプライトを簡単にコピーすることができたよね。 [自分自身のクローンを作る]というブロックを使うと、実行したスプライトのコピーがどんどんできあがったね。
また、今回のレッスンではもう一つ、「乱数」という機能も使ったね。 乱数についても改めて復習しておこう。 サイコロを振ると1から6までのどれかの目が出るけど、どの目が出るかは振ってみないとわからない。 こんなふうに、あらかじめ結果がわからないランダムな数のことが「乱数」だったね。
この乱数も今後ランダムに何かの数値をきめたい時によく使うスクリプトなのでしっかりおぼえておこう! 時間のある人は乱数を使って、クローンの出現するタイミングをランダムに設定してみよう!