top of page

一分間スクラッチ講座 スクラッチの加速(重力)ジャンプ 頭上ブロック跳ね返り編

このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。


前回は加速ジャンプ2段ジャンプ制御編を作成してみました。空中でのジャンプが回避でき、ゲームで活用できそうなジャンプとなりましたね。今回はさらに応用編です。足場やアイテムが頭上にあった場合、下から突き上げたら跳ね返る、という動きを作ってみます。


下の動画は不定期配信の「ファイブボックス 一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。




1,作成済みのスクリプトの確認


前回の記事では下のスクリプトを作成し、空中でのジャンプができない物理ジャンプを作ることができました。

二段ジャンプ制御のスクリプト

このスクリプトの場合、着地補正は正しくできますが、下のように頭上に足場があった場合は正しい動きをしません。頭上の足場に触れた瞬間に、その足場の上に載ってしまいます。

上空に足場があった場合の想定外の動き

今回はこの動きを修正して、頭上の足場に当たったら跳ね返るという動きをご説明します。とっても簡単な処理なので、ぜひチャレンジしてみてください。


2,頭上ブロックの跳ね返り処理


頭上にも足場があった場合、地面の色に触れたときは次の2つのケースが考えられます。

  1. 上空に向かって移動中、頭上の足場に衝突

  2. 落下中、地面に着地

それぞれのケースにおいて、y座標を変化させてもぐりこんだ分を補正します。

1,のケースではy座標をマイナス方向に補正、2,のケースではy座標をプラス方向に補正します。

もぐりこんだ場合の条件分岐とそれぞれの処理

これをもとのブロック定義に戻します。

先にジャンプ力を0にしてしまうと、正しく条件の振り分けができないので、「変数:ジャンプ力を0にする」ブロックの直前に挿入しておきましょう。

ブロック定義完成版

これで上空に足場があった場合でも、跳ね返りの処理ができたと思います。


 

ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。

ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。

Comments


bottom of page