Scratch(スクラッチ)の「クローン」を 使って遊ぼう:ぴよぴよパニック

伊東 けいこ

スクラッチの基本機能や簡単なゲームの作成例に引き続き、複雑なプログラムを作る際に便利な機能を個別にピックアップしてご紹介しています。今回のテーマは「クローン」です。

Scratch(スクラッチ)「クローン」を 使って遊んでみよう:ぴよぴよパニック

今回のポイント

【1】クローンとは?

同じスプライトを複数出現させたい時に使います。1つのスプライトを「クローン」することで、同じプログラムやコスチュームを持つスプライトの複製をいくつでも出現させることができます。
「乱数」や条件分岐([もし 〜 なら]ブロック)をスプライトのコスチュームや位置、向きなどと組み合わせることで、見た目や位置、動き方などが異なるバリエーションを作ることも可能です。

クローンに関連するブロック
クローンに関連するブロックは「制御」カテゴリーの中にあります。

【2】「ぴよぴよパニック」概要

今回は「クローン」でキャラクターを大量に出現させて遊んでみましょう。膨大な数の処理の繰り返しなど、手動では困難な作業をさっと実現できるのはプログラミングの面白さの1つです。

完成イメージ

今回作るのは緑の旗を押すとヒヨコがどんどん生まれて走り回るプログラムです。
まずは100羽出現させてみましょう。ヒヨコを増やすプログラムができたら、ヒヨコをクリックするとヒヨコが消えて、つかまえた数(消した数)を点数として表示するプログラムを追加します。

【3】ヒヨコのスプライトを作る

まず、ひよこのスプライトを作成します。スプライトには、次の図の通り5枚のコスチュームを用意しました。

ヒヨコのスプライトを作る
ヒヨコのコスチューム

【4】緑の旗が押されたときのプログラム

ヒヨコのスプライトを選択して、ヒヨコのクローンをどんどん増やすプログラムを作ります。

[緑の旗が押されたとき]ブロックに[○回繰り返す]ブロックを追加し、その内側に[○秒待つ]ブロックと[自分自身のクローンをつくる]ブロックを追加します。ここでは0.3秒毎にヒヨコのスプライトのクローンが作られ、100羽になるまで繰り返す設定にしました。

ヒヨコをクローンするプログラム

緑の旗を押してプログラムを実行してみるとヒヨコは増えていないように見えます。これはヒヨコのスプライトと同じ場所に複製されたクローンが重なっているからです。実際にはクローンされているので安心してください。

今回作るプログラムでは、なにも表示しない状態で始めたいので、プログラムに[隠す]ブロックを追加して、クローンのもとになるヒヨコのスプライトを非表示にます。

ヒヨコをクローンするプログラム

このプログラムを実行すると、もとのスプライトもクローンも非表示なので何も見えません。見えなくてもクローンは作成されています。次のステップで、クローンの位置や動きを指定してふたたびクローンを表示させましょう。

【5】クローンされた時のプログラム

【4】で作成したクローンの位置や動きを[クローンされたとき]ブロックを使って設定します。[クローンされたとき] ブロックに3段階のプログラムを追加します。

  • 1:初期設定(大きさ、位置、向き、コスチュームなど)
  • 2:卵が割れて生まれるアニメーション
  • 3:画面内を走る(端にあたると跳ね返る)
ヒヨコのプログラム

(5-1) 初期設定

まずはクローンされた時の初期設定をします。大きさ、コスチューム、位置と向き、「回転方法」を指定します。
「乱数」を利用して位置と向きがランダムになるように設定しましょう。回転方法は「左右のみ」に設定しましょう。この指定をしないと、角度によってヒヨコ(卵)が逆さになってしまいます。

回転方法の指定

(5-2) 卵が割れてヒヨコが生まれる

【4】でもとのヒヨコのスプライトを[隠す]設定をしたので、クローンされた時には[表示する]ブロックでスプライトを表示します。

[3回繰り返す]ブロックの中に[0.3秒待つ]と[次のコスチュームにする]ブロックを入れて、ヒヨコが生まれるアニメーションを作成します。コスチュームが「卵」→ 「卵割れ」 → 「生まれる」 → 「走る1」の順に変わり、卵から出てくる部分のアニメーションができました。

(5-3) ヒヨコが画面内を走りまわる

卵から出てきた後は、[ずっと]ブロックの中に0.2秒毎に2種類のコスチュームを切り替えながら前方に進むプログラムを追加することで、走っている様子を表現します。 [もし端に着いたら、跳ね返る]ブロックを追加して画面内をずっと動き続けるように設定しましょう。

【6】ヒヨコを消す(つかまえる)プログラム

ヒヨコを何百羽と増やして画面をいっぱいにすることもできるのですが、動きがだんだん鈍くなることがあります。クローンを増やすことで一度に実行するプログラムが増えて、処理するのに時間がかかるようになるためです。プログラムが重たくなるのを避けるため、増やしたクローンは必要な処理の実行後に削除するようにしましょう。

一定時間が経つと消えるように設定する方法もありますが、今回はクリックするとそのクローンが削除されるようにします。何羽クリックして削除したかがわかるように、点数を加算するプログラムも追加しましょう。

まずは点数用に新しい変数を作成します。「すべてのスプライト用」にチェックを入れます。クローンをクリックした時に点数が加算されるようにするためです。

新しい変数

「点数」の変数ができたら、すでに作成した緑の旗が押された時のプログラムに[点数を0にする]ブロックを追加しましょう。

点数の初期化

緑の旗が押された時のプログラムの全体を説明すると、次の図の通りです。

クローンがクリックされた時

最後にヒヨコがクリックされた時のプログラムを作ります。[このスプライトが押されたとき]ブロックに続けて、点数を追加するブロックと、クローンを削除するブロックを追加します。

点数の初期化

ヒヨコが無数に現れて、クリックすると点数が加算されつつそのヒヨコが消えるプログラム、ぴよぴよパニックの出来上がりです。


「ぴよぴよパニック」 実際のプログラム

【7】今回のまとめ

スクラッチの「クローン」は、次のような様々な表現を実現するのにとても便利な機能です。

  • 何かをキャッチする、捕まえる
  • 敵やアイテムがどんどん出現する
  • 似た動きの駒をいくつも使うチェスや将棋
  • 要素を組み合わせると何かが起こるパズル系のゲーム
  • 幾何学的な模様を描くプログラム

今回作ったサンプルはシンプルなものですが、キャラクターや背景、音、成功と失敗時のパターンなどアレンジを加えて工夫すると、より面白いプログラムになりそうです。「クローン」を使いこなしつつ、ぜひ色々試して遊んでみてください。

Scratchの基本的な使い方、これまでの記事の一覧です。こちらもぜひご参照ください。

Scratchの使い方や作品アイデアがたくさん! Scratchでプログラミングに挑戦!

伊東 けいこ
Web制作者&ライター。2017年よりオランダ在住。 サイト構築の傍らオランダにおける教育&テクノロジー、社会&テクノロジー周辺を追っています。 https://chari-kamo.com

コメント

コメントを書く