キミも未来のトビラをひらこう!!
落下物ゲームを作ろう
今回も新しいゲームを作っていくよ! 早速レッスンをすすめていこう。 今回は、ステージの上から赤いりんごと毒りんごがおちてきて、毒りんごをよけながら赤いりんごをゲットする落下物ゲームを作ろう!
このレッスンでは、これまでつかってきたいろんなブロックをつかって複雑なゲームを作っていくよ。 もう何度も出てきているブロックもあるけれど、何度もつかうことで、ブロックの使い方になれてくるので、今回もしっかり1つずつスクリプト作っていこう。 では、実際に作っていこう!
ゲームにつかう背景・スプライトを用意して設定していこう
まずは、スプライトを確認するよ。
合計3つ設定されていればOKだよ。
次に、ねこのコスチュームを確認しよう。
次に、背景を確認しよう。
ここまで、みんなの画面でもやってみよう!
ねこの動きを作ろう
さあ、それではゲームを実際に作っていこう! ねこのスクリプトを作ってくよ。 まずは、スタートの位置をきめよう。 もう、なんどもやった事があると思うので、自分で作れるようになったかな?
今回、スタートの位置は、 x座標を0、 y座標を-130にしよう。
グリーンフラッグがクリックされたとき、ねこがスタートの位置に 移動するようになったら完成だよ。 この時、ねこがステージの下側にふれないように、少し大きさを小さくしておきましょう。
つぎに、ねこが矢印キーで左右にうごくようにしていこう。 以前使った、[~キーが押されたとき]を使っていこう。
動きの大きさを変えたい場合は数字を調節してね。これで、左右にねこを動かすことができるようになったね。 スプライトのキー操作はもう完璧かな?
x座標の動きをつかって左右の動きを制限しよう
ねこが左右に動くようになったけれど、今のまま左右の端まで 動かすと、ステージの外側にはみ出してしまうよね。
x座標を変えることで、端まで行った時にはみ出さないように制限しよう。
まずは、端まで行ったことが分かるようにしていくよ。 これも、先に作ったスクリプトと同じように、制御の中の[もし~ならと調べる]のブロックで作っていくよ。
端に行った時にステージからはみ出さないためには、x座標を逆側にもどすことで制限することができるんだ。
右端に行ってしまった場合には、 右への動き(x座標を10ずつかえる)と逆に左に動かすためにx座標を-10ずつかえる、 左端に行ってしまった場合には、左への動き(x座標を-10ずつかえる)と逆に右に動かすためにx座標を10ずつかえることで、 ステージからはみ出さなくなるよ!
これでステージの中だけでスプライトが動くようになったね!
動きに合わせてコスチュームを変えて、歩いている動きを作ろう
さあ、左右の動きはこれが最後のスクリプトだよ! 最後に、左右の動きに合わせてコスチュームを変えて、歩いている動きを作ろう。 これまでもコスチュームの変更をしたことはあったけれど、今回は変数をつかってコスチュームの変更をしていくよ。
まずは、「コスチュームきりかえ」という変数を作ろう。
ねこのスクリプトにつぎのコスチュームにすると0.1秒待つを追加してスプライトを動かしてみよう。
コスチューム自体は変わるけれど少しねこのうごきが遅くてうごかしづらいよね。 今度は、0.1秒待つをとってみよう。
この時、アイテムボックスに追加するデータと同じ文字で正解のリストを作るようにしてね!
今度はコスチュームが変わるのが早すぎるし、矢印キーをおさなくてもその場でバタ足をしてしまっているよね。 これでは、違和感があるね。
そこで、今回は変数をつかうことで、もっとスムーズにコスチュームが変わるようにしていくよ! まずは、次のコスチュームに変更するタイミングを、コスチュームの変数が4よりも大きくなった時につぎのコスチュームにする、というスクリプトを作ろう。 これで、次のコスチュームにするという スクリプトは、「コスチュームきりかえ」の変数が4よりも大きくなった時に実行されるようになったね。
次に、左右の矢印キーがおされた時に変数を1ずつふえるようにしよう。
これで、矢印キーがおされると、変数がふえて、変数が4より大きくなったら、コスチュームが変わるようになるよ。
そして、このままでは変数が増え続けてしまうので、変数が4より大きくなった時に、変数は0に戻るようにしよう。
こうすることで、[もし右向き矢印キーがおされたなら~]のかたまりと[もし左向き矢印キーがおされたなら~]のかたまりが5回実行されて、変数が4より大きくになった時にコスチュームが変わるようになるよ。
ただし、[もし右向き矢印キーがおされたなら~]の かたまりと[もし左向き矢印キーがおされたなら~]のかたまりは、 コンピューターのすごい速さで実行されているので、スムーズにうごいているように見えるようになるんだよ! 少しむずかしいけれど、これで、変数をつかってコスチュームを変化させるスクリプトは完成だよ!
りんごがステージの上から落ちてくるようにしよう
ねこの動きが完成したので、つぎにりんごのスプリクトを作っていくよ。 まずは、ステージの上から赤いりんごが落ちてくるようにしよう。
赤いりんごのスプライトを選択。
スタートしたら下におちていくようにしよう。 これは、縦のうごきなのでy座標を変えていくことで下におちるようになるよね。 グリーンフラッグを何回かクリックして動きを確かめてみよう。
今のままでは、グリーンフラッグがクリックされたときにしかりんごがおちていかないので、下まで落ちたら、また上から出てきて、下まで落ちて、…と繰り返すようにしよう。
上に行く(x座標を0、y座標を180にする)、 そしてステージの下に行くまでy座標を変えていくという動きをくりかえすことで、くりかえしりんごがおちるようになるよ。
演算のブロックをつかって、 「y座標が-180よりも小さい時まで=y座標が-180(ステージの一番下)になる直前まで繰り返す」ことで、下にいったら上に戻るようになるんだよ。 これで、グリーンフラッグをクリックするとりんごがずっと上から下におちていくようになったね。
さらに、完成形と同じように左右様々な場所からりんごがおちていくようにしたいので、Ghostを倒せ!ゲームでつかった乱数をつかって、 x座標をいろいろな位置にしてみよう!
左右は、x座標の-240から240までの数値の間で動かせばよかったよね。
グリーンフラッグをクリックして 赤いりんごを見てみよう! 左右様々な場所からおちてくるようにはなったけれど、ステージの左右の端からはみ出てしまうことがあるよね。
これだと、ねこがとどかない場合があるので、x座標を調整しよう。 今回は、-208から208までの乱数とすることでステージにおさまるようになるよ!
これで、赤いりんごがステージ内で左右様々な位置からおちるようになったね。
動きを追加してりんごの動きを完成させよう
ゲームでは、上からおちてくるりんごをねこがゲットしたら、 りんごのスプライトを隠れるようにしたいので、りんごが隠れるようにスクリプトを追加しよう。
これは、見た目の中の隠すをつかえば簡単にできちゃうね!
まずは、データの中で「番号」という変数を作ろう。
隠すをつかった後に、表示するも追加するのをわすれないようにしてね!
今のスクリプトでは、りんごは一定の間隔でおちつづけるようになってしまうので少しおもしろくないよね。
乱数をつかうことで、りんごのおちるタイミングを変えて、いつおちてくるかわからないようにすることでゲームをむずかしくしてみよう。 これで、上からおちる前にスプライトが隠れて、乱数でバラバラのタイミングでおちていくようになるよね!
ここまでできたら、毒りんごにも同じスクリプトを追加すために、毒りんごに同じスクリプトのかたまりを複製しよう。 そして、毒りんごの方は少し待つ時間を長めにとるようにしてみよう。 さあ、これで赤いりんごと毒りんごどちらのスクリプトも完成だよ!
変数をつかってゲームの得点を計算しよう
今回のゲームでは、赤いりんごをゲットしたら1点入り、毒りんごをゲットしたら1点減るように得点を計算できるようにしていこう。
得点の計算には変数をつかえばよかったよね。 データの中の変数で「得点」という変数を作ろう。
そして、赤いりんごをゲットした時に、得点を1ふやしたいので、赤いりんごのスクリプトに得点がふえるようにスクリプトを追加しよう。
毒りんごをゲットした時には、得点を1へらしたいので、得点が-1ずつ変わるようにしよう。 ただし、得点は0を最低点数としたいので、得点の減る条件も一緒に追加するようにしよう。 0点を最低点数とする場合、1点以上ある時、つまり得点が0より大きい時にへるようにすればいいよね!
さあ、これでゲームの得点が計算できるようになったね!
りんごをゲットした時の動きを追加しよう
ゲームはほとんど完成したけれど、エフェクトを追加してみよう。 エフェクトとは、動作に合わせて音を鳴らしたり、見た目を変化させたりすることだよ。 エフェクトを追加することで、よりゲームが楽しくしていくよ!
まずは、りんごをゲットした時に、音を鳴らすようにしよう。 赤いりんご、毒りんごそれぞれ別の音を鳴らせるようにしていくよ! まずは、赤いりんごから設定していこう。 スプライトエリアで赤いりんごを選択。
音のタブに移動して、新しい音の一番左にある音のライブラリーを選択。
音のライブラリーの中にある、boingという音を選択して、OKをクリックするとboingという音がつかえるようになるよ。
そして、ねこに触れた時に音が出るように、音の中からスクリプトを追加しよう。
これで、赤いりんごの音は設定完了だよ! つぎに同じように、毒りんごのスプライトでも音が鳴るようにしていこう。 毒りんごのスプライトを選択。
新しい音を音のライブラリーから追加しよう。 こんどは、bass beatboxという音を選択して追加するよ。
そして、赤いりんごと同じように、音の中からスクリプトを追加しよう。 これで、音のエフェクトは完成だよ!
さらに、ねこの色もエフェクトを追加してみよう。
今度は、毒りんごをゲットした時に、具合がわるくなるように紫色にするようにしよう。 今あるスクリプトに追加することもできるけど、数秒間、色を変えられるように、メッセージをつかって、べつのスクリプトのかたまりをつくるようにしてみよう。 まずは、毒りんごをゲットした時にメッセージを追加しよう。
ねこの色を変えたいので、ねこのスプライトを選択。
そして、毒りんごをうけとった時の ブロックを追加して、見た目の中から[色の効果を~にする]を追加しよう!
見た目の中から色の効果を~にするのブロックと 制御の中から~秒待つのブロックを追加しよう。 色の効果は125にすると、紫色になるよ! この時、さいごに色の効果を0にして、元の色にもどすのをわすれないようにしよう。
これで、エフェクトも完成だよ! エフェクトはゲーム自体の動きとは関係のないスクリプトになので、自分のすきなように変えてみてもOKだよ!
制限時間を作ってゲームが時間になったらゲームを終了させよう
制限時間は、変数をつかってカウントできるようにしていくよ
まずは、データの中から、「残り時間」という変数を作ろう。
つぎに、ねこのスクリプトエリアで、グリーンフラッグがクリックされたとき残り時間を30にして、得点も0からはじまるようにしよう。
制限時間は30秒なので、「残り時間」の変数を30から1秒毎に1へらしていけば30秒をカウントすることができるよね!
これで、グリーンフラッグをクリックすると、ステージ上の、のこり時間の変数が1秒毎にへっていくのを確認しよう。
そして、のこり時間がなくなったら、ゲームを終了させたいので、今作ったスクリプトのさいごにスプライトのほかのスクリプトを止めるを追加しよう。
これで、ねこの同じスプライトのほかのスクリプトの実行が止まって、ゲームが終了します。 残り時間が0になったらりんごのスプライトもスクリプトを止めて隠せれるようにしよう。
これで制限時間も完成だよ!
残り時間が0になったら結果を発表できるようにしよう
さいごに、残り時間が0になった時に、得点によって結果を判定して、結果によってねこに違うセリフを言わせるようにしよう。
今回、
とセリフをつけてみましょう。 制御の中の[もし~なら、でなければ]をつかって場合分けができるね。
そして、それぞれの場合ごとにセリフを言うように設定しよう。 先に作った、制限時間をカウントするスクリプトを追加してみよう。
これで完成だよ! 作ったゲームであそんでみよう!
さいごにここまで学んだことをおさらいしてみよう。 このレッスンでは、これまでつかってきたいろいろなブロックをつかって複雑なゲームを作ることができたね! もう何度も出てきているブロックだったけれど、使い方によってどんどんむずかしい作品が作れるようになったよね。 いくつかこれまでつかってきたブロックで作った新しいうごきを振り返ってみよう。
・「コスチュームきりかえ」の変数をつかって歩くアニメーションを作る
・スプライトがステージの外にはみ出ないようにする
・乱数をつかってりんごをいろいろなばしょから落とす
・エフェクトをつける
「残り時間」の変数をつかって制限時間をつけ、得点に応じてセリフを言うようにする。
このように、Scratchでもかなり本格的なゲームを作ることができるんだよ。 次のレッスンでもまた新しい考え方を勉強していくよ。 時間がある人は、ゲームをむずかしくしたりすることで、自分なりのゲームを作ってみよう!