top of page

一分間スクラッチ講座 スクラッチの加速(重力)ジャンプ 2段(空中)ジャンプ制御編

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


前回は加速ジャンプ沈み込み制御編を作成してみました。正しいジャンプができましたが、2段ジャンプ(空中ジャンプ)ができてしまうような状態です。今回はこの2段ジャンプを制御する方法をご説明します。


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






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


前回の動画では次のようなスクリプトを作って、沈み込まない正確な加速ジャンプを実現しました。

沈み込みのない正確な加速ジャンプのスクリプト

現状のジャンプの条件は「上向き矢印キー」が押されたら・・・。

上向き矢印キーを押せば無条件でジャンプができてしまうので、ここを修正すればよさそうですね。


2,2段ジャンプの制御


空中でジャンプができてしまうのを防ぐには、ジャンプの条件に「上向き矢印キー」が押されたに加え「地面に接地している」という条件を与えます。

地面に触れているという条件を追加

この状態で起動させてみましょう。

すると全くジャンプができない状態になっています。この原因は前回作成した「ブロック定義」の処理によるものです。

ブロック定義では次の処理を行っています。

  1. 空中にいたら重力(-1)ずつy座標を移動で着地

  2. 地面に触れたら地面から離れるまでy座標を 1ずつ移動で空中へ

この処理を「再描画せず実行」、つまり超高速で行っています。つまり見た目は地面に触れているように見えても、内部の処理としては地面と空中を行ったり来たりしているので、地面に触れたという条件が成り立たない状態です。


これに対応するため、ジャンプの信号を送るスクリプトで、ジャンプの直前に一旦キャラクターのy座標を-1だけ移動させます。このことで強制的に地面に触れさせ、ジャンプの条件を成立させます。

ただし、ジャンプをしないとそのまま下に沈み込んでしまうので、ジャンプの処理の後、y座標を1だけ移動させ、先に沈んだ分を相殺します。

y座標を下げて強制的に地面に接触させる

これで2段ジャンプを制御することができるようになりました。


 

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

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

Comments


bottom of page