スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
- ① 天元突破ジオメトリーダッシュ、スタート!
- ② トゲトゲ(スパイク)を追加してデンジャラスなダッシュにしちゃう!
- ③ ツヨツヨ物理演算を作る
- ④ テレポートバグをやっつけろ!
- ⑤ 回転ジャンプの作り方
- ⑥ 当たり判定の改善 (いまここ)
いい感じで進んでいるところなんだけど、先日こんな声をいただいた。


めっちゃ分かるw 作者も跳べなくて悩んでたw
ということで今回は当たり判定(衝突判定)を改善することで、スパイク(トゲトゲ)に触れるときの判定を緩めていこうと思う。そのほうがゲームが面白くなるから、これは必要な改善なんだ。易しすぎてもゲームが退屈になるけど、難しすぎると飽きられちゃうからね。ゲームバランスってやつだ。
今回のゴール
今回は衝突判定を改善するだけだから少し短い。でも大切。
最終的にこんな感じで3マスでもまぁまぁ飛べるようになることがゴールだ。

デバッグのためにスプライト「コース」のコスチューム1(の右端)にトゲトゲを追加しておくとテストが楽だよ。
スプライト「プレイヤー」
プレイヤーに衝突判定用のコスチュームを追加していくよ。

コスチューム名も「プレイヤー」に変えておこうか。

コスチューム「衝突判定_スパイク」を追加する
新しいコスチュームを作って「衝突判定_スパイク」って名前にしておく。このコスチュームは20x20のサイズにしておこう。プレイヤーが34x34だから、ちょい小さい正方形になる。色はぶっちゃけ何色でもいい!

ゲームループを改修する
「ゲームスタート」を受け取ったとき、から始まる処理のループを変えるよ。スクショを参考に、「もし」ブロックに一部の処理を移してみよう。

こんな感じにする↓

さらに「このスクリプトを止める」ブロックを「もし」の中に追加しておこう。

これはループの中に設置する。

そしてこの「◯まで繰り返す」ブロックを「ずっと」ブロックに置き換える。

こういう感じ↓

何も変わってないかテストする
忘れないように最初にコスチュームを「プレイヤー」にしておこう。

よし、これでいったんテストで動かしてみよう。
うん、何も変わってないからOK。先に進もう。
衝突判定用のコスチュームを適用する
さっき作ったコスチュームに着替える処理を追加するよ。
スクショをみて該当する2ヶ所にコスチュームを着替えるブロックを追加する。

さらに「ゲームオーバー」を受け取ったときもコスチュームを着替えるようにしよう。

衝突判定が改善されてスパイクが乗り越えやすくなったかテストする
おっけー!なんとか3回目でジャンプ成功!いままでは永遠にチャレンジしても飛び越えられなかったくらい難しかったけど、これですっきり飛べるようになった!
まとめ
ジャンプしたら衝突判定用の一回り小さいコスチュームに着替えることで、体が少しかすった程度ではゲームオーバーにならなくなったね。小さい工夫だけど、これによってジャンプして障害物を乗り越えていくゲーム体験が大きく飛躍したぞ!
次回はダッシュしている最中のパーティクル(キラキラ)を実装する!これも楽しいところ!
- ① 天元突破ジオメトリーダッシュ、スタート!
- ② トゲトゲ(スパイク)を追加してデンジャラスなダッシュにしちゃう!
- ③ ツヨツヨ物理演算を作る
- ④ テレポートバグをやっつけろ!
- ⑤ 回転ジャンプの作り方
- ⑥ 当たり判定の改善 (いまここ)

質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)
・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。