
前回は、ネコがベル(コイン)を取るとスコアが増えて、目標数で「クリア!」まで作りました。
あれだけでも十分ゲームなんですが、やっぱり入れたくなるのが ジャンプ ですよね。
今回は、そのジャンプを追加します。
「床の当たり判定(床に触れたら止まる)って、作らないとダメ?」
…って思うんですが、今回は作らなくて大丈夫です。
床の当たり判定の代わりに、
y=-110 を地面のライン(見えない床)として扱えば、ジャンプは普通に作れます。
まずはジャンプだけ追加して「ちゃんと飛べた!」までをゴールにして、
床判定(段差・足場)やゲームオーバーは次回に回す方が、つまずきが少なくて気持ちよく進められました。
今回できるようになること
ネコがスペースキーでジャンプできる
上がったあと自然に落ちる(重力)
地面(y=-110)に着地して止まる
スペースを押しっぱなしでも連続ジャンプしない(ここ大事)
まず準備:変数を1つだけ作ります
ジャンプに必要なのは、ネコ専用の変数1つです。
- y速度(このスプライトのみ)
「上に飛ぶ勢い」と「落ちる勢い」を、ここに入れて動かします。
最初は難しそうに見えますが、慣れるとこれが一番ラクです。

ジャンプの考え方(ざっくり)
ジャンプは、ざっくり言うとこういう流れです。
スペースを押したら 上向きの勢い(y速度)を入れる
毎フレーム 重力でy速度を減らす
y速度ぶんだけ y座標を動かす
地面より下に行ったら 地面に戻して止める
これだけです。順番に見ていきます。
ネコ側のコード(ジャンプ本体)
ここからは、ブロックを見ながらの方が早いので、まず全体を貼っておきます。

- キャプション:ネコ:ジャンプ(y速度)+重力+着地(y=-110)。押しっぱなし対策も入れました。
1) 旗が押されたとき:初期化
スタートの準備はシンプルです。
- y速度を 0 にする
- y座標を -110 にする
- 回転方法を「左右のみ」にする
今回は 床の当たり判定を作らず、y=-110 を「地面の高さ(見えない床)」として扱います。
なので最初にネコを -110 に置いておくと安心です

。
2) ずっと:ジャンプ入力 → 押しっぱなし対策 → 重力 → 着地
ここからが本番です。やってることは4つだけです。
2-1) ジャンプ入力(スペース)
画像の上の方にあるこの部分です。
- もし「スペースキーが押された」かつ「y座標 = -110(地面)」なら
→ y速度を 12 にする
ポイントは 地面にいる時だけジャンプOK にすることです。
これがないと空中で連打できてしまって、ちょっと別ゲームになります(笑)
2-2) 押しっぱなし対策(ここが今回のキモ)
ジャンプを入れると、かなりの確率で次の現象が起きます。
「スペースを押しっぱなしにすると、着地した瞬間にまたジャンプする」
Scratchの「キーが押された」は、“押した瞬間”ではなく“押している間ずっと”反応するので、起きやすいんですよね。
なので、ジャンプした直後にこれを入れます。
- (スペースキーが押された)ではない まで待つ
=スペースを離すまで待つ
これを入れるだけで、押しっぱなし連続ジャンプが止まります。
(地味なんですが、ゲームとしての操作感が一気に良くなります)
2-3) 重力(だんだん落ちる)
次は重力です。
- y速度を -1 ずつ変える
毎フレーム少しずつ勢いが減るので、
自然に「上がる→止まる→落ちる」になります。
2-4) y座標を動かす(勢い分だけ移動)
- y座標を y速度 ずつ変える
y速度がプラスなら上へ、マイナスなら下へ動きます。
2-5) 着地(床判定の代わり)
床に触れた判定は作っていないので、今回はここで着地させます。
- もし y座標 < -110 なら
- y座標を -110 にする
- y速度を 0 にする
これがあると、地面をすり抜けません。
「見えない床に当たって止まる」感じになります。
ジャンプの調整(迷ったらここだけ)
数値はだいたいこのあたりが気持ちよく動きます。
- ジャンプ力(y速度=12)
低いなら 13〜14、高いなら 10〜11 - 重力(-1ずつ変える)
落ちるのを速くしたいなら -2(ちょっと難しくなります)
最初は 12 と -1 のままがおすすめです。
今回はゲームオーバーを入れません(次回に回す理由)
今回のテーマは「ジャンプを安定させる」です。
床の当たり判定を作らず y=-110 で着地させている間は、
基本的にネコは地面で止まるので「落下でゲームオーバー」が作りにくいです。
なので今回は、
- ジャンプができる
- 押しっぱなしでも暴走しない
- 地面にきれいに着地する
ここまでをきっちり固めて、次回
- 床の当たり判定(足場・段差)
- 落ちたらゲームオーバー
にしたいと思います。
まとめ
今回は、ベル集めゲームに ジャンプ(重力) を追加しました。
床の当たり判定はまだ作っていませんが、
y=-110 を地面として固定すれば、ジャンプは十分ゲームっぽくなります。
そして「押しっぱなしで連続ジャンプ」を防ぐために、
スペースキーが離されるまで待つ(〜ではないまで待つ)を入れたのが今回のポイントでした。
次回は、いよいよ 床の当たり判定です。
- 段差(足場)を作る
- 足場に着地する
- 落ちたらゲームオーバー
ジャンプができた今なら、段差を1個置くだけで一気にゲームになります。