
Scratch ジャンプするいくつかの方法

Scratchでジャンプの動作をつくる方法について解説します。
ジャンプと一言で言っても、簡単な方法から、よりゲームっぽい(スーパーマリオっぽい)方法まで、いろいろあります。
スペースを押したときに、ジャンプするというプログラムを例に説明していきます。
ジャンプする Lv1 ~シンプルなジャンプ~
ジャンプをするということは、少し上に行って、また元の位置に戻ってくるというのが基本です。
上に行くということは、Scratchにおいては、Y座標を増やすということです。
従って、
スペースが押されたら
Y座標を増やし
同じだけY座標を減らす
という風に組み立てていきます。(増やすと減らすの間を少し開けないと、上に行ったことがわからないまま戻ってきてしまいますので、0.2秒間をあけます)


ぎこちないですが、一応ジャンプするプログラムが完成しました。
これが一番シンプルで簡単ですね。
ジャンプする Lv2 ~少しなめらかなジャンプ~
もう少しだけ、動作をなめらかにしてみます。
1ではY座標を50ずつ変えていましたが、これを5ずつ×10回にしてみます。
これだけでも少しなめらかになります。


少しずつ動かすという組み換えはジャンプに限らず、右や左に進む場合にも使える技です。
動きを小刻みにすることで、なめらかになります。
ジャンプする Lv3 ~重力を意識したジャンプ~
Lv3は少しこだわって、重力を意識したジャンプを組んでみます。
ジャンプの動きをもう少し細かく見ていくと、
地面を蹴った瞬間が、一番動きが速く
徐々に遅くなっていきます。
その動きが0になったとき、そこが最高到達点です。
そこから徐々に落ちていき、
地面に近づくにつれて、落ちる速度が速くなります。
この動きをプログラムで組むには、
変数を作って、動く速度を調整していきます。

左側で、Y座標を変える動作を、右側で速度を変える動作を組んでいます。
つまり、スペースが押された瞬間は9.9になり、
0.5ずつ速度が遅くなっていきます。
やがて0を過ぎると、今度は速度がマイナスになり、
速度がマイナスということは、Y座標が減る、つまり落ちていくということです。

こんな感じです。かなりなめらかでリアルなジャンプになりました。
ただ、これだとずっと落ちていってしまいますので、
一番下に着いたら、速度が0になるようにします。

背景の下端を赤く塗って、赤に触れたら、速度が0になるようにしました。


ジャンプする Lv4 ~マリオみたいなジャンプ~
Lv3のジャンプに左右の動きをつければ、いよいよみんな大好きスーパーマリオのようなジャンプにすることができます。


いかがでしょうか。
これでゲームに使えそうですか。
ぜひ実際に組んでみてください。
参考:Scratch wiki Japan
https://ja.scratch-wiki.info/wiki/%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%99%E3%82%8B