キミも未来のトビラをひらこう!!

programmingSchool

できたを育むプログラミングスクール

レッスン10落下物ゲームを作ろう!

チャプター01はじめに

このチャプターのポイント

落下物ゲームを作ろう

・完成形を確認かくにんしよう

今回も新しいゲームを作っていくよ! 早速レッスンをすすめていこう。 今回は、ステージの上から赤いりんごと毒りんごがおちてきて、毒りんごをよけながら赤いりんごをゲットする落下物ゲームを作ろう!

このレッスンでは、これまでつかってきたいろんなブロックをつかって複雑なゲームを作っていくよ。 もう何度も出てきているブロックもあるけれど、何度もつかうことで、ブロックの使い方になれてくるので、今回もしっかり1つずつスクリプト作っていこう。 では、実際に作っていこう!

チャプター02スプライトと背景を確認しよう

このチャプターのポイント

ゲームにつかう背景・スプライトを用意して設定していこう

・スプライトを確認かくにんしよう

まずは、スプライトを確認するよ。

  • ねこ
  • りんご
  • 毒りんご

合計3つ設定されていればOKだよ。

次に、ねこのコスチュームを確認しよう。

  • ねこのコスチュームa
  • ねこのコスチュームb
・背景を用意しよう

次に、背景を確認しよう。

ここまで、みんなの画面でもやってみよう!

チャプター03キャラクターを操作できるようにしよう

このチャプターのポイント

ねこの動きを作ろう

・スタートの位置を決めよう

さあ、それではゲームを実際に作っていこう! ねこのスクリプトを作ってくよ。 まずは、スタートの位置をきめよう。 もう、なんどもやった事があると思うので、自分で作れるようになったかな?

今回、スタートの位置は、 x座標を0y座標を-130にしよう。

グリーンフラッグがクリックされたとき、ねこがスタートの位置に 移動するようになったら完成だよ。 この時、ねこがステージの下側にふれないように、少し大きさを小さくしておきましょう。

矢印キーで動かそう

つぎに、ねこが矢印キーで左右にうごくようにしていこう。 以前使った、[~キーが押されたとき]を使っていこう。

動きの大きさを変えたい場合は数字を調節してね。これで、左右にねこを動かすことができるようになったね。 スプライトのキー操作はもう完璧かな?

チャプター04左右のうごきを制限をしよう

このチャプターのポイント

x座標の動きをつかって左右の動きを制限しよう

・ステージの外側にはみ出さないようしよう

ねこが左右に動くようになったけれど、今のまま左右の端まで 動かすと、ステージの外側にはみ出してしまうよね。

x座標を変えることで、端まで行った時にはみ出さないように制限しよう。

まずは、端まで行ったことが分かるようにしていくよ。 これも、先に作ったスクリプトと同じように、制御の中の[もし~ならと調べる]のブロックで作っていくよ。

端に行った時にステージからはみ出さないためには、x座標を逆側にもどすことで制限することができるんだ。

右端に行ってしまった場合には、 右への動き(x座標を10ずつかえる)と逆に左に動かすためにx座標を-10ずつかえる、 左端に行ってしまった場合には、左への動き(x座標を-10ずつかえる)と逆に右に動かすためにx座標を10ずつかえることで、 ステージからはみ出さなくなるよ!

これでステージの中だけでスプライトが動くようになったね!

チャプター05コスチュームを変えよう

このチャプターのポイント

動きに合わせてコスチュームを変えて、歩いている動きを作ろう

・変数を使ったコスチュームの変更

さあ、左右の動きはこれが最後のスクリプトだよ! 最後に、左右の動きに合わせてコスチュームを変えて、歩いている動きを作ろう。 これまでもコスチュームの変更をしたことはあったけれど、今回は変数をつかってコスチュームの変更をしていくよ。

まずは、「コスチュームきりかえ」という変数を作ろう。

ねこのスクリプトにつぎのコスチュームにすると0.1秒待つを追加してスプライトを動かしてみよう。

コスチューム自体は変わるけれど少しねこのうごきが遅くてうごかしづらいよね。 今度は、0.1秒待つをとってみよう。

この時、アイテムボックスに追加するデータと同じ文字で正解のリストを作るようにしてね!

今度はコスチュームが変わるのが早すぎるし、矢印キーをおさなくてもその場でバタ足をしてしまっているよね。 これでは、違和感があるね。

そこで、今回は変数をつかうことで、もっとスムーズにコスチュームが変わるようにしていくよ! まずは、次のコスチュームに変更するタイミングを、コスチュームの変数が4よりも大きくなった時につぎのコスチュームにする、というスクリプトを作ろう。 これで、次のコスチュームにするという スクリプトは、「コスチュームきりかえ」の変数が4よりも大きくなった時に実行されるようになったね。

次に、左右の矢印キーがおされた時に変数を1ずつふえるようにしよう。

これで、矢印キーがおされると、変数がふえて、変数が4より大きくなったら、コスチュームが変わるようになるよ。

そして、このままでは変数が増え続けてしまうので、変数が4より大きくなった時に、変数は0に戻るようにしよう。

こうすることで、[もし右向き矢印キーがおされたなら~]のかたまりと[もし左向き矢印キーがおされたなら~]のかたまりが5回実行されて、変数が4より大きくになった時にコスチュームが変わるようになるよ。

ただし、[もし右向き矢印キーがおされたなら~]の かたまりと[もし左向き矢印キーがおされたなら~]のかたまりは、 コンピューターのすごい速さで実行されているので、スムーズにうごいているように見えるようになるんだよ! 少しむずかしいけれど、これで、変数をつかってコスチュームを変化させるスクリプトは完成だよ!

チャプター06落下物のスプリクトを作ろう

このチャプターのポイント

りんごがステージの上から落ちてくるようにしよう

・りんごが繰り返し落ちてくるようにしよう

ねこの動きが完成したので、つぎにりんごのスプリクトを作っていくよ。 まずは、ステージの上から赤いりんごが落ちてくるようにしよう。

赤いりんごのスプライトを選択。

スタートしたら下におちていくようにしよう。 これは、縦のうごきなのでy座標を変えていくことで下におちるようになるよね。 グリーンフラッグを何回かクリックして動きを確かめてみよう。

・繰り返し落とそう

今のままでは、グリーンフラッグがクリックされたときにしかりんごがおちていかないので、下まで落ちたら、また上から出てきて、下まで落ちて、…と繰り返すようにしよう。

上に行く(x座標を0、y座標を180にする)、 そしてステージの下に行くまでy座標を変えていくという動きをくりかえすことで、くりかえしりんごがおちるようになるよ。

演算のブロックをつかって、 「y座標が-180よりも小さい時まで=y座標が-180(ステージの一番下)になる直前まで繰り返す」ことで、下にいったら上に戻るようになるんだよ。 これで、グリーンフラッグをクリックするとりんごがずっと上から下におちていくようになったね。

・ランダムな位置から落とそう

さらに、完成形と同じように左右様々な場所からりんごがおちていくようにしたいので、Ghostを倒せ!ゲームでつかった乱数をつかって、 x座標をいろいろな位置にしてみよう!

左右は、x座標の-240から240までの数値の間で動かせばよかったよね。

グリーンフラッグをクリックして 赤いりんごを見てみよう! 左右様々な場所からおちてくるようにはなったけれど、ステージの左右の端からはみ出てしまうことがあるよね。

これだと、ねこがとどかない場合があるので、x座標を調整しよう。 今回は、-208から208までの乱数とすることでステージにおさまるようになるよ!

これで、赤いりんごがステージ内で左右様々な位置からおちるようになったね。

チャプター07りんごの動きを追加しよう

このチャプターのポイント

動きを追加してりんごの動きを完成させよう

・りんごがスプライトに触れたら隠すようにしよう

ゲームでは、上からおちてくるりんごをねこがゲットしたら、 りんごのスプライトを隠れるようにしたいので、りんごが隠れるようにスクリプトを追加しよう。

これは、見た目の中の隠すをつかえば簡単にできちゃうね!

まずは、データの中で「番号」という変数を作ろう。

隠すをつかった後に、表示するも追加するのをわすれないようにしてね!

・りんごの落ちるタイミングを変えよう

今のスクリプトでは、りんごは一定の間隔かんかくでおちつづけるようになってしまうので少しおもしろくないよね。

乱数をつかうことで、りんごのおちるタイミングを変えて、いつおちてくるかわからないようにすることでゲームをむずかしくしてみよう。 これで、上からおちる前にスプライトが隠れて、乱数でバラバラのタイミングでおちていくようになるよね!

・スプリクトの複製ふくせい

ここまでできたら、毒りんごにも同じスクリプトを追加すために、毒りんごに同じスクリプトのかたまりを複製ふくせいしよう。 そして、毒りんごの方は少し待つ時間を長めにとるようにしてみよう。 さあ、これで赤いりんごと毒りんごどちらのスクリプトも完成だよ!

チャプター08得点を計算しよう

このチャプターのポイント

変数をつかってゲームの得点を計算しよう

・変数を作ろう

今回のゲームでは、赤いりんごをゲットしたら1点入り、毒りんごをゲットしたら1点減るように得点を計算できるようにしていこう。

得点の計算には変数をつかえばよかったよね。 データの中の変数で「得点」という変数を作ろう。

そして、赤いりんごをゲットした時に、得点を1ふやしたいので、赤いりんごのスクリプトに得点がふえるようにスクリプトを追加しよう。

毒りんごをゲットした時には、得点を1へらしたいので、得点が-1ずつ変わるようにしよう。 ただし、得点は0を最低点数としたいので、得点の減る条件も一緒に追加するようにしよう。 0点を最低点数とする場合、1点以上ある時、つまり得点が0より大きい時にへるようにすればいいよね!

さあ、これでゲームの得点が計算できるようになったね!

チャプター09エフェクトを作ろう

このチャプターのポイント

りんごをゲットした時の動きを追加しよう

・音を鳴らす

ゲームはほとんど完成したけれど、エフェクトを追加してみよう。 エフェクトとは、動作に合わせて音を鳴らしたり、見た目を変化させたりすることだよ。 エフェクトを追加することで、よりゲームが楽しくしていくよ!

まずは、りんごをゲットした時に、音を鳴らすようにしよう。 赤いりんご、毒りんごそれぞれ別の音を鳴らせるようにしていくよ! まずは、赤いりんごから設定していこう。 スプライトエリアで赤いりんごを選択。

音のタブに移動して、新しい音の一番左にある音のライブラリーを選択。

音のライブラリーの中にある、boingという音を選択して、OKをクリックするとboingという音がつかえるようになるよ。

そして、ねこに触れた時に音が出るように、音の中からスクリプトを追加しよう。

これで、赤いりんごの音は設定完了だよ! つぎに同じように、毒りんごのスプライトでも音が鳴るようにしていこう。 毒りんごのスプライトを選択。

新しい音を音のライブラリーから追加しよう。 こんどは、bass beatboxという音を選択して追加するよ。

そして、赤いりんごと同じように、音の中からスクリプトを追加しよう。 これで、音のエフェクトは完成だよ!

・色を変える

さらに、ねこの色もエフェクトを追加してみよう。

今度は、毒りんごをゲットした時に、具合がわるくなるように紫色むらさきいろにするようにしよう。 今あるスクリプトに追加することもできるけど、数秒間、色を変えられるように、メッセージをつかって、べつのスクリプトのかたまりをつくるようにしてみよう。 まずは、毒りんごをゲットした時にメッセージを追加しよう。

ねこの色を変えたいので、ねこのスプライトを選択。

そして、毒りんごをうけとった時の ブロックを追加して、見た目の中から[色の効果を~にする]を追加しよう!

見た目の中から色の効果を~にするのブロックと 制御の中から~秒待つのブロックを追加しよう。 色の効果は125にすると、紫色むらさきいろになるよ! この時、さいごに色の効果を0にして、元の色にもどすのをわすれないようにしよう。

これで、エフェクトも完成だよ! エフェクトはゲーム自体の動きとは関係のないスクリプトになので、自分のすきなように変えてみてもOKだよ!

チャプター10制限時間をつけよう

このチャプターのポイント

制限時間を作ってゲームが時間になったらゲームを終了させよう

・30秒の制限時間をつけよう

制限時間は、変数をつかってカウントできるようにしていくよ

まずは、データの中から、「残り時間」という変数を作ろう。

つぎに、ねこのスクリプトエリアで、グリーンフラッグがクリックされたとき残り時間を30にして、得点も0からはじまるようにしよう。

制限時間は30秒なので、「残り時間」の変数を30から1秒毎に1へらしていけば30秒をカウントすることができるよね!

これで、グリーンフラッグをクリックすると、ステージ上の、のこり時間の変数が1秒毎にへっていくのを確認しよう。

そして、のこり時間がなくなったら、ゲームを終了させたいので、今作ったスクリプトのさいごにスプライトのほかのスクリプトを止めるを追加しよう。

これで、ねこの同じスプライトのほかのスクリプトの実行が止まって、ゲームが終了します。 残り時間が0になったらりんごのスプライトもスクリプトを止めて隠せれるようにしよう。

これで制限時間も完成だよ!

チャプター11結果を発表しよう

このチャプターのポイント

残り時間が0になったら結果を発表できるようにしよう

・得点を元に結果を判定しよう

さいごに、残り時間が0になった時に、得点によって結果を判定して、結果によってねこに違うセリフを言わせるようにしよう。

今回、

  • 得点が9点よりも多い場合には「いっぱい取れたね!」
  • 得点が9点以下の場合には「残念!次はがんばろう!」

とセリフをつけてみましょう。 制御の中の[もし~なら、でなければ]をつかって場合分けができるね。

そして、それぞれの場合ごとにセリフを言うように設定しよう。 先に作った、制限時間をカウントするスクリプトを追加してみよう。

これで完成だよ! 作ったゲームであそんでみよう!

チャプター12最後に

・まとめ

さいごにここまで学んだことをおさらいしてみよう。 このレッスンでは、これまでつかってきたいろいろなブロックをつかって複雑なゲームを作ることができたね! もう何度も出てきているブロックだったけれど、使い方によってどんどんむずかしい作品が作れるようになったよね。 いくつかこれまでつかってきたブロックで作った新しいうごきを振り返ってみよう。

・「コスチュームきりかえ」の変数をつかって歩くアニメーションを作る

・スプライトがステージの外にはみ出ないようにする

・乱数をつかってりんごをいろいろなばしょから落とす

・エフェクトをつける

「残り時間」の変数をつかって制限時間をつけ、得点に応じてセリフを言うようにする。

このように、Scratchでもかなり本格的なゲームを作ることができるんだよ。 次のレッスンでもまた新しい考え方を勉強していくよ。 時間がある人は、ゲームをむずかしくしたりすることで、自分なりのゲームを作ってみよう!