ランダム出現させたいなら「乱数」を使おう

乱数とは?

乱数は、簡単に言うと「ランダムな数」です。ちょうど、サイコロを振って出る目が分からないのと似ています。ちなみに、コンピューターで使われている乱数の生成には計算が必要なので、完全な乱数は作れません。厳密には、「疑似乱数」と呼ばれています。

風船をランダムに出現させてみよう

Scratchで風船割りゲームを作ろう!と思ったら、まずは風船をランダムに出現させる仕組みを作ります。風船のスプライトステージ発生させるx座標を調べてみましょう。

風船が一番左にある時のx座標は-200ですね。

今度は、風船を一番右へ移動した時のx座標を調べます。

風船が一番右にある時のx座標は190になります。

x=-200~190
の範囲に風船を出現させれば良いことになりますね。では、さっそくスクリプトを組んでいきましょう!

演算の「乱数」を使おう

「演算」カテゴリの中にある、「1から10までの乱数」をスクリプトエリアにドラッグしましょう。

「1から10まで」を、「-200から190まで」に変更します。

スタートした時にいつも風船が左下の位置から出現するようにスクリプトを組みます。左下に風船をドラッグしたときの座標は

なので、「🚩がクリックされたとき」のブロックの下に「x座標を-200、y座標を-135にする」のブロックをドラッグしましょう。

風船は横にランダムに動くようにするスクリプトは、以下の通りになります。

このブロックをクリックすると、風船が横方向にランダムに動きます。

y座標を使って風船を上昇させよう

風船が横に出現するだけでは「風船」とは言えないので、風船が上に昇っていくようにスクリプトを組んでいきます。縦方向の動きは「y座標」を使います。一番下のy座標は-180、一番上のy座標は180なのでy座標が下から上へ360移動すれば良いです。

そこで、このようにブロックを追加します。「y座標を10ずつ変える」のブロックを36回繰り返すことで
36×10=360
となります。

これで、風船が上昇するようになりました!

この動作を繰り返すようにするため、「ずっと」のブロックで囲みます。また、風船には複数のコスチュームがあります。風船の色が変わったほうが楽しいので、「次のコスチュームにする」のブロックも追加しましょう。🚩がクリックされたときには赤い風船から出現するようにするため、「画像効果をなくす」のブロックも追加しておきます。

これで、ランダムな場所から風船が出てくるようになりました!

風船をクリックしたら点数が入るようにしよう

マウスのポインターで風船に触れたら、「パン!」と音がなるようにします。先ほどのスクリプトとは別に、下記のスクリプトを組みましょう。

これだけだと、音がなるだけなので風船が割れた感じがしませんよね。そこで、点数が入るようにしてみたいと思います。
①「データ」にある「変数を作る」をクリックして
②「score」と入力して③「OK」をクリックしましょう。

ブロックエリアに新しいブロックが現れました。

「scoreを0にする」と「scoreを1うつ変える」のブロックを下のようにドラッグします。

これで、風船をクリックしたら音が「パン!」となって点数が入るようになりました。

「ランダムな場所」ブロックなら、もっと簡単!


Scratchには、「動き」のカテゴリの中に「ランダムな場所へ行く」というブロックがあります。これを使えば、わざわざ乱数を使わなくてもスプライトがランダムな場所から出現するようになります。ひとつ欠点があって、「ランダムな場所へ行く」というブロックを使うとスプライトが出現する範囲を選択できないのでスプライトが切れてしまうことがあります。でも、簡単にランダム出現を設定できるので便利ですよ。

アイテムをランダムに出現させる

Scratchチュートリアルの「キャラクターを飛ばそう」に「ランダムな場所」のブロックが使われています。ランダムに出現するハートに触れると、点数が入る仕組みになっています。

ブロック1個をドラッグするだけなので、簡単ですね!

ただし、ハートが出現する範囲を指定していないのでハートが切れることがあります。

「ランダムな場所」と「乱数」を組みあわせる

Scratchチュートリアルの「かくれんぼ」にも、「ランダムな場所に行く」のブロックが使われています。

ここでは、出現する場所は「ランダムな場所」となっていますが、出現するタイミングに「1から5までの乱数」が使用されています。

応用編

クローンと乱数を使って、雪をランダムに降らせるプログラムです。

クローンが出現するタイミングをランダムにして(0.2~1.2秒の間)、クローンされた雪の結晶の大きさがランダム(10~50%)になるようにすることで雪がふんわり舞い降りるようにしています。

詳しくはこちらの記事で紹介しています↓

まとめ

Scratchで「乱数」を使うことで、スプライトをランダムに出現させることができます。スプライトが出現する範囲を指定しなくても良いなら、「ランダムな場所」のブロックが便利ですよ。また、「乱数」はスプライトをランダムな場所に出現させるだけでなく、ランラムなタイミングに出現することも可能です。

Scratch2.0のチュートリアルの「音楽を作ろう」では、ピアノの音を「乱数」を使って出しているので、興味がある人はのぞいてみて下さいね。