初心者OK!こどもプログラミング入門(Scratch)

子ども向けプログラミング学習の定番「Scratch」の使い方。我が子(小学1年)の初挑戦記録付き。

クローン機能を使って雪をたくさん降らせよう【雪避けゲーム-4】

 

f:id:shufufu:20170404160416j:plain

Scratch(スクラッチ)での「落ちてくる障害物を避けるゲーム」作り、4回目の今回は、落ちてくる雪の数を増やす方法を見ていきましょう。

今回のポイントは、クローンを作るブロックで雪を増やす点です。

正解は一つではないのがScratch

記事では新しい機能を使ってみますが、「クローン」の概念がわかりにくい小さなお子さんの場合などは、工夫してブロックをつなげることで雪を増やしてももちろんOKです。

 

「クローン」のブロックで自動的に雪を増やす

 「○○のクローンを作る」は、その名の通り同じものを自動で増やせるブロックです。自分でコピーする手間が省けるのに加え、スプライトの数が増えないので管理もしやすく、今回の雪のように同じスプライトをたくさん使いたいときに便利です。

 

クローンの作成と回数を設定する

さっそく雪を増やしていきましょう。

クローンを作りたいスプライト(今回は雪)を選択したら、「スクリプト」の「制御」にある「自分自身のクローンを作る」ブロックをスクリプトエリアに配置します。

f:id:shufufu:20170404160948j:plain

 

今回のアプリでは、クローンの作成を繰り返して雪を何個も降らせたいので、繰り返しブロックで挟みます。

ここでは「50個の雪を避けきればクリア」にしたいので、「制御」にある「10回繰り返す」ブロックで挟み、回数を「50回」に変更しました。

f:id:shufufu:20170404161029j:plain

 

 クローンの雪も降るように、動くきっかけを設定する

作成されたクローンに「このように動きなさい」という指示を与えるため、先に作っておいた「ランダムな場所から降ってくる」のスクリプトを使います。

このスクリプトを実行するきっかけとして、とりあえず付けてあった「緑の旗がクリックされたとき」ブロックを外し、「スクリプト」の「制御」にある「クローンされたとき」ブロックを付けましょう。

f:id:shufufu:20170404161116j:plain

       f:id:shufufu:20170310111433j:plain

f:id:shufufu:20170404161122j:plain

 

さらに雪の降り始め、つまりクローンを開始するタイミングをゲームのスタート時にするため、「緑の旗がクリックされたとき」のブロックを、クローンの繰り返しの方に付けました。

f:id:shufufu:20170404161242j:plain

 

ここまでで設定したスクリプトを実行される順に整理してみると、このようになります。

f:id:shufufu:20170404161322j:plain

 

試しに緑の旗をクリックしてみると…

f:id:shufufu:20170404161347j:plain

50回分のクローンの複製が一度に行われて、大量の雪が降ってきました…。これではとても避けきれません。

 

降らせ方や降った雪の処理を調節する

だいたいのスクリプトはできたので、より思い通りに動くよう微調整していきます。

 

一つずつ降るように待ち時間を入れる

雪が一つずつ降るようにするため、クローンを1つ作ったら、少し間をあけて次のクローンを作るようにします。「制御」にある「○秒待つ」ブロックを間に入れて、秒数を設定しました。

f:id:shufufu:20170404161507j:plain

秒数で難易度が変わる

この秒数によってゲームの難易度が変わってくるので、好きなタイミングに調節しましょう。間隔が短いほど雪がドンドン降ってきて、避けるのは難しくなります。 

もう一度スクリプトを実行してみると、0.8秒ごとにクローンが作成されるようになりました。作成されるクローンのx座標には乱数を使っているので、クローンごとにいろいろなところから降ってきます。

f:id:shufufu:20170404161624j:plain

 

表示するブロックを入れておこう

プログラムを作っていると、「下に積もった雪が今は邪魔だな…」などの理由で、「隠す」ブロックをクリックしてスプライトをいったん消すということがよくあります。

こうして一度隠してしまうと、「表示」させない限り出てこないので、「スクリプトが実行できなくなった!?」と慌ててしまうことになります。

そこで雪を降らせるスクリプトに、「表示する」ブロックを追加しておきました。これで一度隠したりしても、ちゃんと表示されるようになります。

f:id:shufufu:20170404161728j:plain

  

これで雪を降らせるスクリプトは完成です。実行してみると、パラパラとランダムに雪が降ってきて、50個降った時点で終了になりました。

 

f:id:shufufu:20170404161803j:plain

f:id:shufufu:20170404161813j:plain

 

次からはこのゲームの肝、「雪がネコに当たったらヒットポイントを減らす」の仕組みを作っていきます。

Copyright © 2016 初心者OK!こどもプログラミング All rights reserved.