2段ジャンプを禁止したジャンプ

前回で斜めジャンプはできました。

ゲームでは2段ジャンプを禁止しているゲームが多いので、2段ジャンプできないようにするジャンプも考えてみます。

最初、下の図のように上向き矢印が押されたときに高さが0のときならという条件を追加してみたのですが、これだと2段ジャンプになってしまいました。

理由は、高さはジャンプしているうちに減っていって、頂点に達したときに高さ=0になってしまうので、ここで上向き矢印を押したらさらにジャンプできてしまいます。

高さ=0のときは、頂点に達したときと地面についているときの2通りあるわけです。

そこで、地面についてるときとついていないときを区別する変数を作ることにしました。

ジャンプ中という変数を作ります。

ジャンプしているときは、ジャンプ中=1、ジャンプしていないときは、ジャンプ中=0

地面についているときは、ねこのy座標が-130のときです。

ちょうど重力の中にy=-130にするがあるので、ここにジャンプ中=0を入れて、ジャンプ中=0をy=-130と定義します。

そして、もとのコードを下記のように書き換えれば、2段ジャンプが禁止となります。

前回は高さを10にしましたが、今回は高さを20に変更しました。

残りの赤いブロックの関数のコードは、前回の斜めジャンプを参照ください。

2段ジャンプを禁止したジャンプの動画