これを学ぶよ
わざ本物の物理シミュレーションでは、1 秒間に何メートル動くかを計算するよ。タイマーを使って前のフレームからの経過時間(dt)を測って、速度に dt をかけることで、コンピュータの速さに左右されない正確な物理を作ろう。地球の重力は -9.8 m/s² で、「-9.8 × dt」が 1 フレームあたりの本物の速度変化(重力 × 経過時間)だよ。ただし Scratch のステージ (480×360) は本物の地球と比べると小さいので、その本物の速度変化に「画面用の調整値 20」を掛けて画面で見やすくしてある。Wiki オリジナルとはブロックの並び順を変えています(教材ステップを段階的に組み立てるため)。並び順の変更で位置Y の反映が 1 フレームだけ遅れますが、見た目は同じ放物線になります。緑の旗を押した直後、最初の 1 フレームだけタイマーの値が大きいと一瞬大きく飛ぶことがあるので、何度か押してみよう。
つかうブロック
動画を見て、自分でも作ってみよう
やってみよう!1dtで横方向に動かそう
「位置X」「位置Y」「X速度」「Y速度」「dt」の 5 つの変数を作ります。次の順に組み立てましょう。 1. 緑の旗を押したら、位置X = マイナス50 / 位置Y = マイナス50 / X速度 = 60 / Y速度 = 240 にセット(Y速度はあとで使うよ) 2. 「ずっと」の中で、まず「dt を タイマー にする」→「タイマーをリセット」 3. つぎに「位置X を (X速度 × dt) ずつ変える」 4. さいごに「x座標を 位置X、y座標を 位置Y にする」 dt は前のフレームからの経過時間です。X速度 60 は「1 秒で 60 動く」という意味だよ。
↑上のならべ方も見てね
使うブロック
ヒント
2Y方向の動きも足そう
縦方向の動きも追加します。「ずっと」の中、「x座標を 位置X、y座標を 位置Y にする」の下に「位置Y を (Y速度 × dt) ずつ変える」を追加します。これでボールが斜めに動くようになるよ。でも、まだ重力がないから、まっすぐな線(直線運動)になるね。次のステップで重力を入れるよ。
使うブロック
ヒント
3本物の重力を入れよう
地球の重力 -9.8 m/s² を加えます。「-9.8 × dt」が「重力 × 経過時間」で、1 フレームあたりの本物の速度変化だよ。ただし本物の値だけだと Scratch のステージ (480×360) ではボールが上に行きすぎて落ちてこないので、その本物の速度変化に「画面用の調整値 20」を掛けて画面で見やすくします。「ずっと」の最後に「Y速度 を ((-9.8 × dt) × 20) ずつ変える」を追加します。「○×○」のなかにさらに「○×○」を入れる入れ子の形だよ。
使うブロック
ヒント
AI チャットを使うには、ログインが必要だよ。
ログイン・登録するはじめての方はこちら