Scratchで「当たり判定」を使いこなそう

スクラッチでゲームを作るときに必須と言っても過言ではない「当たり判定」はぜひともマスターしておきたい技術です。

いろいろな事例を見て、「当たり判定」を深く掘り下げていきましょう!

スプライトが2つ以上あれば、物語が生じる

スクラッチキャットと赤い四角くん。

もし、ねこが右に歩いていったらどうなるのか見てみましょう。

何も設定しなければ、ねこは赤い四角の前を通り過ぎていきます。

スプライトの重なり順を変えてみよう

今度は、ねこが赤い四角の後ろを通るようにしてみます。

「赤い四角」にスクリプトを組むので、ステージ下の赤い四角のスプライトをクリックしましょう。

「イベント」から「🚩がクリックされたとき」をドラッグして、「見た目」から「前に出す」をドラッグします。

これで、赤い四角がつねに前にでるようにプログラミングされたのでねこは赤い四角の後ろ側を通るようになります。

「当たり判定」を使ってみよう

次は、ねこが赤い四角にぶつかるようにしてみます。

ここで使うのが、「制御」にある「もし~なら」のブロックです。

『もし(赤い四角に触れたら)なら』というスクリプトを組みます。

「触れたら」のブロックを活用しよう

「調べる」にある「触れたら」のブロックを「もし~なら」のブロックの中にドラッグします。

デフォルトで「マススのポインター」となっているので、▼のプルダウンメニューを開いてみましょう。

「赤い四角」を選択します。

これで、「もし赤い四角に触れたなら」というブロックが出来ました。

もし赤い四角に触れたなら、ねこが跳ね上がるスクリプトにしようと思います。

ねこが跳ね上がったときの座標は、x=-52,y=56なので

「もし赤い四角に触れたなら」のブロックに「動き」の中にある「1秒でx座標を-52に、y座標を56に変える」をドラッグします。

組みあがったブロックを、最初に作成していたスクリプトに組み込みます。

これで、ねこが赤い四角に当たったら跳ね上がるようになりました!

ただ跳ね上がるだけではつまらないので、コスチュームが変わるようにしてみましたよ。

跳ね上がるスピートを動きも止まるようにスクリプトを変更してみました。

ちょっと衝撃的ですねw

「色に触れたら」のブロックを活用しよう

今度は、赤い四角ではなく緑の壁にしてみました。

ここはすり抜けられないようにしたいのですが、このままだと容易にスルーされてしまいます。

先ほどのように「触れたら」のブロックを使っても良いですが、「色に触れたら」のブロックを使って当たり判定のスクリプトを組んでみましょう。

「制御」にある「もし~なら」のブロックに「調べる」にある「色に触れた」のブロックを組み込みます。

色指定は、明るい緑になっているので壁の色をは違いますよね。

そこで、壁の色を採取してきたいと思います。

色を採取する前に、明るい緑になっている部分をマウスのポインターでクリックしましょう。

次に、採取したい色をマウスのポインターでクリックします。

これで、「もし(壁と同じ)緑色に触れたなら」という条件が出来ました。

「動き」にある「10歩動かす」のブロックをドラッグして、「10」を「-10」に変更しましょう。

「10歩動かす」のブロックにマイナス(-)を付けることでねこが10歩左に進むようになります。

ねこがずっと歩いているスクリプトにこのブロックを組み込むので、相殺されてねこが止まったように見えるようになります。

ねこが緑の壁を通り抜けられなくなりました!

「当たり判定」をゲームで使ってみよう

ピンポンゲーム

Scratchのチュートリアルに、「ピンポンゲーム」があります。

条件:ボールが下に落ちて「赤色に触れたら」

→点数が1点引かれる

→すべてを止める

という当たり判定になっています。

競争ゲーム

Scratchのチュートリアルの「競争ゲーム」でも、当たり判定が使われています。

条件:ねこが「黄色(ゴールライン)に触れたら」

→「やったー!」と2秒言う

→終わるまでclapping(拍手)の音を鳴らす

という当たり判定です。

クローンが触れたら削除する

こちらのゲーム、「サークル・ウォーズ」はクローンがどんどん増えていくのですが、クローンが青のプレイヤーに触れたら削除されるようにプログラミングされています。

条件:クローンが「プレイヤーに触れたら」

→スコアを1ずつ変える

→ポップの音を鳴らす

→このクローンを削除する

という当たり判定が使われています。

まとめ

「当たり判定」は、スプライトがある条件に出くわしたときに「どのような動作をするのか」判断させるプログラムです。

「触れたら」ブロックや「色に触れた」ブロックを使って様々な判定をしてみましょう!

当たり判定をマスターすると、Scratchでゲームを作るときに役立つのでどんどん活用してみて下さいね。