Scratchプログラミング初心者向けの教材。二次元方程式を使った隕石や花火の移動。何がどうやって動くのか全体や先の行動を考えてプログラムを組んでいくロジックを考える。
体験できること
■ 学校で学ぶ方程式を使う。
■ ロジックを考える。
何がどうやって動くのか全体や先の行動を考えて、プログラムを組んでいく。
1. マウスを押したら、発射台から[花火玉]を打ち上げる
↓
2. [花火玉]が目的の場所まで打ち上ったら爆発する
↓
3. [隕石]が落ちてくる
↓
4. [花火玉]と[隕石]がぶつかる
↓
5. [隕石]が破壊される
↓
6. [発射台]と[隕石]がぶつかる
↓
7. [発射台]が壊れてゲームオーバー
最初から存在する[スプライト1]を選び、設定を変更する。
1)スプライトの名前を「発射台」に変える。
2)新しいコスチュームを選ぶ(カニを選んだ)。
3)最初から存在するコスチュームのネコは消しておく。
4)「発射台」の大きさは[50]%、X座標は[0]、Y座標は[-170]にする。
新しい変数を作る([このスプライトのみ]を選ぶこと)
1)スタートX
2)スタートY
3)目標地点X
4)目標地点Y
5)現在位置X
6)現在位置Y
花火玉が、どこから発射し、どこへ向かうのか、移動ルートを初期設定する。
1)2点を通る直線の方程式は、下記である。
2)変数[現在位置Y]は「発射台」の[-170]から画面上に向かって[2]ずつ加算させればいい。ここでの[2]は移動距離であり[1]ならゆっくり、[3]なら早く移動できるスピードとなる。
3)変数[現在位置X]を方程式から計算する。
これをScratchの変数に置き換えると、下記になる。
スプライト「花火玉」のプログラムの続きを書く。
ステージ[背景]を選んで、コードにマウスが押された場所に向かって花火玉のクローンを作る。
マウスが押されたまま、何度もクローンが作成されてしまう場合、マウスが押されない状態まで待つブロックを追加する(マウスを押しっぱなしで、連続して花火玉を打ち上げるのも楽しいよ)。
旗をクリックして、マウスをクリックして花火玉が打ち上ることを検査する。検査できたら、画面に表示されている変数は非表示にする。
1)大きさを[20]%にする
2)コスチュームを[ball-a]にする
3)コスチュームを[ball-c]にする
4)大きさを[20]ずつ変えるを、[10]回繰り返す(大きくなる時は早く)。
5)大きさを[-5]ずつ変えるを、[40]回繰り返す(小さくなる時は遅く)。
旗をクリックして、マウスをクリックして花火玉が爆発することを検査する。
「幽霊」の効果を追加すると、徐々に透明にすることができる。
隕石は、2点を決めて直線を移動する。花火玉の反対方向なので、スプライトを複製してプログラムを改造すると効率がいい。
1)スプライト「花火玉」を複製して、新しいスプライト名を「隕石」にする。
2)スプライトのコスチューム「Ball-a~Ball-e」は全て削除して「スイカ」を追加する。
1)スタートする場所は、Y座標が画面最上段、X座標は乱数で決める。
2)目標地点は、Y座標が画面最下段、X座標は乱数で決める。
3)現在位置の計算は変更なし。
4)どこからどこまでの繰り返し条件が変わるから気を付けてね。
ステージのコードを改造する。[1~30]までの乱数で、[1]が出たときだけクローンを作る。[~30]までの値は調整してね。
旗をクリックして、ときどき、隕石(スイカ)が落下してくることを確認する。
1)もし「花火玉」に触れたら、[0.5]秒間、半分になったスイカを表示して「隕石」を消す。
旗をクリックして、花火玉を打ち上げて隕石を破壊できることを確認する。
ここまでの完成品は、これだ!
(https://scratch.mit.edu/projects/422721526/)