時間ベースの本格物理

出典: Scratch Wiki

これを学ぶよ

わざ

本物の物理シミュレーションでは、1 秒間に何メートル動くかを計算するよ。タイマーを使って前のフレームからの経過時間(dt)を測って、速度に dt をかけることで、コンピュータの速さに左右されない正確な物理を作ろう。地球の重力は -9.8 m/s² で、「-9.8 × dt」が 1 フレームあたりの本物の速度変化(重力 × 経過時間)だよ。ただし Scratch のステージ (480×360) は本物の地球と比べると小さいので、その本物の速度変化に「画面用の調整値 20」を掛けて画面で見やすくしてある。Wiki オリジナルとはブロックの並び順を変えています(教材ステップを段階的に組み立てるため)。並び順の変更で位置Y の反映が 1 フレームだけ遅れますが、見た目は同じ放物線になります。緑の旗を押した直後、最初の 1 フレームだけタイマーの値が大きいと一瞬大きく飛ぶことがあるので、何度か押してみよう。

つかうブロック

緑の旗が押されたとき○を○にするずっと
横に並べると、見ながら作れるよ

動画を見て、自分でも作ってみよう

やってみよう!
ステップ 1 / 3弾道(ものを投げる動き)のしくみ

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 動く」という意味だよ。

↑上のならべ方も見てね

使うブロック

よみこみちゅう...

ヒント

AI チャットを使うには、ログインが必要だよ。

ログイン・登録するはじめての方はこちら