Scratch(スクラッチ)での「落ちてくる障害物を避けるゲーム」作り、4回目の今回は、落ちてくる雪の数を増やす方法を見ていきましょう。
今回のポイントは、クローンを作るブロックで雪を増やす点です。
正解は一つではないのがScratch
記事では新しい機能を使ってみますが、「クローン」の概念がわかりにくい小さなお子さんの場合などは、工夫してブロックをつなげることで雪を増やしてももちろんOKです。
「クローン」のブロックで自動的に雪を増やす
「○○のクローンを作る」は、その名の通り同じものを自動で増やせるブロックです。自分でコピーする手間が省けるのに加え、スプライトの数が増えないので管理もしやすく、今回の雪のように同じスプライトをたくさん使いたいときに便利です。
クローンの作成と回数を設定する
さっそく雪を増やしていきましょう。
クローンを作りたいスプライト(今回は雪)を選択したら、「スクリプト」の「制御」にある「自分自身のクローンを作る」ブロックをスクリプトエリアに配置します。
今回のアプリでは、クローンの作成を繰り返して雪を何個も降らせたいので、繰り返しブロックで挟みます。
ここでは「50個の雪を避けきればクリア」にしたいので、「制御」にある「10回繰り返す」ブロックで挟み、回数を「50回」に変更しました。
クローンの雪も降るように、動くきっかけを設定する
作成されたクローンに「このように動きなさい」という指示を与えるため、先に作っておいた「ランダムな場所から降ってくる」のスクリプトを使います。
このスクリプトを実行するきっかけとして、とりあえず付けてあった「緑の旗がクリックされたとき」ブロックを外し、「スクリプト」の「制御」にある「クローンされたとき」ブロックを付けましょう。
さらに雪の降り始め、つまりクローンを開始するタイミングをゲームのスタート時にするため、「緑の旗がクリックされたとき」のブロックを、クローンの繰り返しの方に付けました。
ここまでで設定したスクリプトを実行される順に整理してみると、このようになります。
試しに緑の旗をクリックしてみると…
50回分のクローンの複製が一度に行われて、大量の雪が降ってきました…。これではとても避けきれません。
降らせ方や降った雪の処理を調節する
だいたいのスクリプトはできたので、より思い通りに動くよう微調整していきます。
一つずつ降るように待ち時間を入れる
雪が一つずつ降るようにするため、クローンを1つ作ったら、少し間をあけて次のクローンを作るようにします。「制御」にある「○秒待つ」ブロックを間に入れて、秒数を設定しました。
秒数で難易度が変わる
この秒数によってゲームの難易度が変わってくるので、好きなタイミングに調節しましょう。間隔が短いほど雪がドンドン降ってきて、避けるのは難しくなります。
もう一度スクリプトを実行してみると、0.8秒ごとにクローンが作成されるようになりました。作成されるクローンのx座標には乱数を使っているので、クローンごとにいろいろなところから降ってきます。
表示するブロックを入れておこう
プログラムを作っていると、「下に積もった雪が今は邪魔だな…」などの理由で、「隠す」ブロックをクリックしてスプライトをいったん消すということがよくあります。
こうして一度隠してしまうと、「表示」させない限り出てこないので、「スクリプトが実行できなくなった!?」と慌ててしまうことになります。
そこで雪を降らせるスクリプトに、「表示する」ブロックを追加しておきました。これで一度隠したりしても、ちゃんと表示されるようになります。
これで雪を降らせるスクリプトは完成です。実行してみると、パラパラとランダムに雪が降ってきて、50個降った時点で終了になりました。
次からはこのゲームの肝、「雪がネコに当たったらヒットポイントを減らす」の仕組みを作っていきます。