ロケット   作品例:ロケット.mwx

カメをロケットにして打ち上げするプログラムを作りましょう。
<学習内容>
・作品の中にあるグローバルな状態変数の利用
・カメの中にあるローカルな状態変数の利用
・カレント以外のカメの情報を参照 
 の向きを調整し、

 で が打ち上げされます。

 地球の重力の影響を受けて進みます。
<考え方>
・ロケットは地球の距離の二乗に反比例した引力を受けます。
<プログラミング> ロケットのもとを 左クリックしてはじめましょう。 


1.GO の手順を作ります。
(1)手順タブに GO のプログラムを書きます。
手順は GO
全部「元は 位置 角は 向き」
進行位置、
位置は 頼む "ロケット 「位置」
向きは 頼む "ロケット 「向き」
速度は 発射速度 / 100
発射
終わり
手順は 発射
進行位置、
向きは 頼む "ロケット 「向き」
前へ 速度 待つ 0.1
方向 "地球 前へ 1000 / (距離 "地球) / (距離 "地球)
ロケット、 方向 "進行位置
速度は 距離 "進行位置
前へ 速度
もし ぶつかったか "ロケット "地球 「待つ 10 元の位置」
発射
終わり
手順は 元の位置
全部「位置は 元 向きは 角」
みんなとまる
終わり


・コマンドラインで 作品内の名前は ”速度 を実行して、
 速度 という名前のグローバル変数を作ってあります。
・コマンドラインで カメの中の名前は ”元 を実行して、
  という名前のカメごとのローカル変数を作ってあります。
・コマンドラインで カメの中の名前は ”角 を実行して、
  という名前のカメごとのローカル変数を作ってあります。


・進行位置 という名前のカメを先に速度だけ進め、地球の方向に落下させて、
 ロケットが進む位置を調べます。
 そこまでの向きと距離がロケットの新しい向きと速さになります。

頼む ”ロケット でカレントを移動しないで、カレント以外の”ロケット の情報を参照します。
でロケットが発射されます。

 発射後は、地球の引力の影響を受けながら進みます。赤い線に到達すると、元の位置にもどります。