Scratchの重力計算
よく質問されるのでまとめておきました。
重力加速度から計算するいたって普通の方法です。加速度と速さの関係をなんとなく知るにはいいのではないでしょか。
スペースキーでジャンプします。https://scratch.mit.edu/projects/631087176
1初期位置を指定
2accele(加速度)の変数を0にする。 加速度によって速さ(move_Y)が変化する。
3fllor_Yの変数を0にする。 Floor_Yは床の役割をする。座標ではなく色などで分けても良い。
4move_Y(速さ)の変数を0にする。
5gravity_num(重力加速度)の変数を-0.05にする。この値は調整してください。
6jumppower(ジャンプパワー)の変数を0.5にする。この値は調整してください。
7jumpingFlg(ジャンプしているかどうか)の変数を0にする。0が「していない」、1が「している」
8walk_fluency(歩く頻度)の変数を0にする。コスチュームでテクテク歩くようすを再現するときに、毎回だと頻度が多すぎるので、一定の間隔で変えるようにするための変数。重力とは関係ない。
9ずっと
10y座標をmove_Y(速さ)の分だけ変える
11move_Yをaccele(加速度)の分だけ変える
12floor_Y>y座標 …着地しているならば、
13 スペースが押されて、ジャンプ中でなければ、
14accele(加速度)をjumppower(ジャンプパワー)にする
15move_Y(速さ)を5にする。・・・躍動感を出すため。なくても良い。
16jumpingFlg(ジャンプしているかどうか)を1にする。
13でなければ、つまり、ジャンプしないときは)
17move_Yを0にする。
18jumpingFlg(ジャンプしているかどうか)を0にする。
19y座標をfoor_Y-1にする。(moveYの数値によってfloor_Yを超える場合があるため)
(12でなければ)
・・・とくになし
20もし、walk_fluencyが10ならば
21次のコスチュームにして
22walk_fluencyを0にする。(10回に1回コスチュームを変えている)
23もしジャンプ中でなければ
24walk_fluencyを増やす。(ジャンプ中は歩かないように)