クローンの上限は何個まで?

Scratchでは、スプライトを複製することができる「クローンを作る」という機能があります。

スタンプ機能でもスプライトを複製することが出来ますが、上の画像のようにどんどん増えていくスプライトを作る場合には「クローン」を使用します。

クローンは、最大301個まで作成できます。

それ以上作成するとコンピューターがクラッシュする可能性があります。

クローンを作ってみよう

ねこが火の球を投げて敵をやっつけるゲームを作ります。

火の球がたくさん出てくるようにしたいので、火の球のクローンを生成するスクリプトを組んでいきます。

ステージ下の「火の球」のスプライトをクリックしましょう。

クローンを作るときには、「制御」にある「クローンを作る」のブロックを使います。

クローンされたときどうする?

「クローンを作る」ブロックだけではクローンは生成されません。

「クローンされたとき」のブロックをセットでスクリプトを組みましょう。

クローンを削除しよう

クローンした「火の球」は、ステージの端に触れたら消えるようにします。

そこで、「クローンを削除する」のブロックを使うことにします。

クローンを連射する

ねこが火の球を連射するようにするには、火の球に下のようなスクリプトを組みます。

注意点は、ねこではなく「火の球」にスクリプトを組むことです!

これでねこが火の球を連射するようになりますよ。

スペースキーを連打すれば、火の球が勢い良く生成されます。

火の球に触れたらどうする?

火の球に触れたら敵が消えるようにしてみます。

ねこが火の球で敵をやっつけるゲームのイメージです。

コウモリは一度火の球に触れたら隠して、「クローンを生成」のメッセージを送ります。

「クローンを生成」のメッセージを受け取ったら、再び同じ動きをするコウモリのクローンを生成します。

「動き」の「x座標を28、y座標を-64にする」というのはコウモリの座標です。

エンドレスでコウモリが出現します・・!

敵が動けるようにしよう

このままではコウモリが不利なので、下から上に動けるようにします。

下のようなスクリプトを組みましょう。

コウモリが火の球に当たったときに音が鳴るようにしました。

スペースキーを押したタイミングとコウモリが上に行くタイミングがピッタリ合うと、「ポン!」と音が出てコウモリが消えます(GIFでは音は出ませんが)。

点数が入るミニゲームを作ろう

コウモリに火の球を10個当てたらねこの勝ち、コウモリが火の球に当たらず10羽上まで行けたらコウモリの勝ちにします。

まずは、ねこが火の球を投げてコウモリに当てたら点数が入るようにスクリプトを組みます。

ステージ下のコウモリのアイコンをクリックしましょう。

「点数」の変数を作って、下のようなスクリプトを組みます。

これで、コウモリに火の球が当たったら1点入ってコウモリがステージ上まで到達したら-1点になるようになりました。

10点になったら勝ち!

このままだとエンドレスでメリハリのないゲームになってしまうので、10点入ったらねこの勝ちにします。

ステージ下のねこのスプライトをクリックして、10点入ったらねこが「10羽やっつけたぞ!」と言って拍手されるようにします。

ねこに以下のスクリプトを組みます。

これだけだと、10点入ってもスペースキーを押したら火の球が出続けてしまうので10点入ったら火の球が出なくなるようにしましょう。

ステージ下の火の球のスプライトをクリックします。

火の球のスクリプトに以下のブロックを追加します。

点数が10点になったら、このスクリプトが止まるようにします。

これだけだと、コウモリが再び出てきて点数も加点されてしまうので、10点になったらコウモリの動きが止まるようにしましょう。

ステージ下のコウモリのスプライトをクリックします。

コウモリのスクリプトに以下のブロックを追加して、10点入ったらクローンを生成しないようにしました。

これで、点数が10点入ったらねこが「10羽やっつけたぞ!」と言って拍手されるスクリプトが完成しました(GIFでは拍手の音が入っていません)。

ゲームオーバーを考える

コウモリが火の球に当たらず3回ステージの上まで到達したらゲームオーバーになるようにします。

新しく「コウモリが天井に触れた数」という変数を作って以下のスクリプトを追加します。

既存のスクリプトにも2つの変数ブロックを追加しました。

①スタートをクリックしたときに「コウモリが天井に触れた数」が「0」になるように「🚩がクリックされたとき」のブロックの下に「コウモリが天井に触れた数を0にする」のブロックを追加します。

コウモリが天井に触れると点数が「-1」になりますが、コウモリが天井に触れた数は「1」ずつ増えていきます。

「点数を-1ずつ変える」のブロックの下に、「コウモリが天井に触れた数を1ずつ変える」の変数ブロックを追加しました。

ゲームオーバーの表示を出す

「コウモリが天井に触れた数」が「3」になるとゲームオーバーのメッセージが送られるので、メッセージを受け取った場合にゲームオーバーの表示が出るようにしていきます。

新しく「ゲームオーバー」のスプライトを作って、スクリプトを組んでいきます。

ゲームオーバーのスプライトは、🚩がクリックされたときは隠れているようにします。

ゲームオーバーのメッセージを受け取ったら表示させて全ての動きを止めるようにします。

これで、ゲームオーバーの表示が出るようになりました!

ステージ上の「コウモリが天井に触れた数」の変数は表示する必要が無いので、データにある「コウモリが天井に触れた数」のチェックを外しましょう。

これで、ステージには「点数」だけ表示されるようになります。

ゲームを装飾しよう

ねこに何か言わせる

ステージ下のねこのアイコンをクリックしましょう。

スタートがクリックされたら、ねこが「スペースキーで火の球発射!」と言うようにします。

見た目にある「~と2秒言う」のブロックを追加して、セリフを入力しましょう。

これでだいたいのゲームのやり方の説明が出来ますね。

背景を追加する

背景がまっ白だとつまらないので、洞窟の中に居るような背景にしたいと思います。

ペイントエディターで自分で背景を描いてみました。

火の球をリアルにする

火の球が赤いボールだと雰囲気が出ないので、こちらもペイントエディタを使って描いてみました。

「火の球2」は、「火の球1」を反転させたものです。

火の球がゆらゆら揺れながら発射されるようにするため、「次のコスチュームにする」と「~秒待つ」のブロックを追加します。

「0.1」という数字は、いろいろ試してみて一番良い結果だった数値です。

コウモリが羽ばたくようにしよう

コウモリも2つのコスチュームがあるので、羽ばたいているように見えるようにしていきます。

コウモリがクローンされたときのスクリプトに、「次のコスチュームにする」と「0.1秒待つ」のブロックを追加します。

なんだか楽しくなってきましたね!

クリア画面を作ろう

10点入ったときに、背景がガラリと変わるようにします。

洞窟の背景にクリア画面を追加で描いてみました。

🚩をクリックされたときは「洞窟1」の背景になるように、背景に以下のスクリプトを組んでおきます。

10点入ったら「洞窟2」の背景になるように、火の球のスクリプトに「背景を洞窟2にする」のブロックを追加しました。

ゲームを複雑にする

このままだとスペースキーを連打すれば必ずねこが勝ってしまうので、「じゃまじゃま棒」で一定の間隔で火の球の通り道を防ぎます。

「コスチューム1」は、火の球が通れない長い「じゃまじゃま棒」です。

「コスチューム2」は、火の球が通れる短い「じゃまじゃま棒」です。

1.5秒ごとにコスチュームが変わるスクリプトを組みます。

制御の秒数を変えることで、ゲームの難しさをコントロールできます。

たとえば、「1秒待つ」にすると難しくなりますし、「2秒」にすると簡単になります。

火の球のスプライトをクリックして、当たり判定のスクリプトを作ります。

火の球がクローンされたときのスクリプトに、じゃまじゃま棒の緑色に触れたら火の球が隠れるようにします。

ゲームの完成

火の球のクローンとコウモリのクローンを使って、楽しいミニゲームが出来ました。

こちらのゲームは、Scratchのtomoannaのアカウントで実際に遊ぶことが出来ますよ。

⇒tomoannaのアカウントへ遊びに行く(Scratchのサイトへ移ります)

ねこの勝ち

コウモリの勝ち

まとめ

最初はとても簡単でコウモリはやられっぱなしでした。

でも、「じゃまじゃま棒」を投入することで良いゲームバランスになったと思います。

みなさんも、「クローン」を作ってミニゲームを作ってみて下さいね!