このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。
前回は加速ジャンプ2段ジャンプ制御編を作成してみました。空中でのジャンプが回避でき、ゲームで活用できそうなジャンプとなりましたね。今回はさらに応用編です。足場やアイテムが頭上にあった場合、下から突き上げたら跳ね返る、という動きを作ってみます。
加速ジャンプシリーズの記事
下の動画は不定期配信の「ファイブボックス 一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。
目次
Outline
作成済みのスクリプトの確認
前回の記事では下のスクリプトを作成し、空中でのジャンプができない物理ジャンプを作ることができました。
このスクリプトの場合、着地補正は正しくできますが、下のように頭上に足場があった場合は正しい動きをしません。頭上の足場に触れた瞬間に、その足場の上に載ってしまいます。
今回はこの動きを修正して、頭上の足場に当たったら跳ね返るという動きをご説明します。とっても簡単な処理なので、ぜひチャレンジしてみてください。
頭上ブロックの跳ね返り処理
頭上にも足場があった場合、地面の色に触れたときは次の2つのケースが考えられます。
- 上空に向かって移動中、頭上の足場に衝突
- 落下中、地面に着地
それぞれのケースにおいて、y座標を変化させてもぐりこんだ分を補正します。
1,のケースではy座標をマイナス方向に補正、2,のケースではy座標をプラス方向に補正します。
これをもとのブロック定義に戻します。
先にジャンプ力を0にしてしまうと、正しく条件の振り分けができないので、「変数:ジャンプ力を0にする」ブロックの直前に挿入しておきましょう。
これで上空に足場があった場合でも、跳ね返りの処理ができたと思います。
ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。