児童向け、小学生から始めるプログラミング言語として、スクラッチ(Scratch)は最適です。
たくさん用意されているキャラクターや背景を使っていろんな種類のオリジナル作品を作ろう!
スクラッチは計算が得意なプログラミング言語です。楽しみながら賢くなれるなんて理想的です。
プログラミングの力がつくと、算数や理科をはじめいろんな教科の応用力も身に付くのも嬉しいね!
◇◆ 目的 ◆◇
方向を決めて、その方向にボールを投げるプログラムを作ります。
(向き)・クローンに関するブロックの使い方を実践で学ぼう。
番号 | イメージ | 内容 |
---|---|---|
Xs-11 | Cool shooter(クールシューター)vol.1方向を決めてからその方向に投げよう 習得:スプライトの向きを別のスプライトに渡す方法と、 回転の中心の仕組みを実践で学ぶ |
『スプライトの追加』でこれら4つ出しておこう。
風船には4つ目のコスチュームを自分で描いて追加します。(追加の仕方は後で解説)
矢印はスプライトの中心を矢印の後方にするため絵を選択して右にずらしておきます。これは追って説明します。
実際は自分の頭で想像して、それをプログラムに変換するんだ。難しい?テキストに載ってないことをするときには、キミもすでにやっているんじゃないかな?
最初は旗を押してスタート
★ 変数(投げた)と(投げる方向)を作っておこう。
③スペースキーが押されたら⇒[スペース]キーが押されたとき
自身の向きをボールの向きとして渡す。
けどその前に、ボールを投げていないときの判断をしよう。
制御ブロックの もし を用意して、
(投げた)=(0)を条件に、
成立した時、(投げた)を(1)にするし、
(投げる方向)を(向き)にする。
④そしたらボールを投げる合図を出す(トリガー)として、
(投げる)を送るブロックを使おう。
(投げる)を送るってどこにあるの?
これは、イベントカテゴリにあるメッセージを送るブロックです。
新しいメッセージ名:に「投げる」と入力して[OK]をクリックしよう
★ なお、Jamaiの手に持ったボールの位置を中心に回すようにする工夫が必要という事なので、
矢印のコスチュームタブをクリックして絵をちょっといじろう。
矢印のプログラムはこれで全部だよ
矢印(Arrow1)は、スペースキーが押されたときにメッセージ(投げた)を送るので、
これを受け取ったときの動作をプログラミングする。
★出てくる位置を決める。
X座標を(-200)、Y座標を(-110)にする
★ボールを登場させる⇒表示する
①投げる向きを決める(矢印の向きを自身の向きにする)
⇒(投げる方向)度に向ける
②その方向に移動⇒(15)歩動かす
制御ブロックの ずっと で挟んでおこう
③画面の端に着いたらボールは消える
⇒もし
(X座標)>220(画面右端) または
(Y座標)>180(画面上端) なら
ボールを消す
⇒もし
-210>(X座標) (画面左端) または
-180>(Y座標) (画面下端) なら
ボールを消す
ブロック定義ボールを消すを用意しておこう。
③ボールが消えたら、ボールを持って構える姿に変える
(投げる準備)を受け取ったとき⇒コスチュームを(Jamai-a)にする
投げる人(Jamai)のプログラムはこれで全部だよ
★ 変数(スコア)と(クローンする)を作っておこう。
ブロック定義クローンを作るを用意しておこう。
動きのパターン
①画面の真ん中くらいの高さ(Y=0)からスタート⇒x座標を(100)、y座標を(0)にする
②左右に往復(Xは-50~200)
(②-A)右に動かす命令
〈 〉まで繰り返すを用意し、
条件を (x座標)>200 とする。
右に移動⇒x座標を(5)ずつ変える
(②-B)左に動かす命令
〈 〉まで繰り返すを用意し、
条件を (x座標)<-50 とする。
左に移動⇒x座標を(-5)ずつ変える
③1往復したら少し上昇。上(Y=150)まで行ったら終了
1往復したら⇒(2-A),(2-B)の動きが終わった後のタイミング
少し上昇⇒y座標を(5)ずつ変える
クローン発生の仕組み
④クローン発生は基本片道で1回。また、風船が消えたらクローン許可
片道で1回 ⇒ クローンを作ってもよい条件は、(クローンする)=0のときだけ。
(自分自身のクローンを作る)のあと、[クローンする]を(1)にすることで、
[クローンする]を(0)にするまではクローンされないようになっている。
[クローンする]を(0)にするのは、『コードその1』で右端に着いた時と左端に着いた時に行っている。従って、片道1回というわけなのだ。
なお、もし((1)から(10)までの乱数)=(1)ならとしているのは、片道のどこでクローンされるか分からなくする仕掛けです。
『乱数』とは、この場合なら1~10の目のあるサイコロを振って出た目のことで、
つまり「何が出るか分からない数」を『乱数』と言います。
⑤クローンしたときの風船の色はランダムとする
⇒
コスチュームを(1)から(3)までの乱数にする
コスチュームの指定は番号でもできるので、このような使い方も可能だよ。
ボールに当たったとき
⑥ボールが当たるたびに次の色に変わる
ボールが当たるたび⇒もし(Ball)に触れたなら
次の色に変わる⇒次のコスチュームにする
⑦最後の色(ムラサキ)に当たったら弾ける(弾けるコスチュームを追加)
⇒コスチューム番号4に弾けたときの絵を追加してあるなら、コスチュームが順に変わっていけば弾けるよ
風船が割れたときのコスチュームを追加しよう。
コスチュームタブで、画面左下の『描く』をクリックすると新しく作れるよ。
⑧ボールが当たるたびにスコアアップ。はじけたときは高得点。
ボールが当たるたびにスコアアップ⇒スコアを(10)ずつ変える
弾けたときは高得点⇒スコアを(30)ずつ変える
⑨弾けたときのエフェクトとして回しながら小さくする
弾けたとき ⇒ もしコスチュームの番号=4なら
回しながら小さくする ⇒ (20)回繰り返すの中に、
大きさを(-4)ずつ変えると(15)度回すを入れる。
こうすることで回りながら小さくなるよ。
風船(Balloon)のプログラムはこれで全部だよ
ボール(Ball)のプログラムはこれで全部だよ
あとは、思った通りに動いているか、テストプレイしながら確認しよう。
あえて『変なこと』をやってみるのも実は重要です。想定外の動きは、変なことをしたときに起こりがちですから。
改造してみよう
・投げる速さは固定だけど、速くしたり遅くしたり、また入力できるようにしてみよう。
・ボールや風船は遠くに行くほど小さくなるようにしてみよう
・効果音を付けてみよう
ワンポイントメモ
今回のプログラムは方向を決めて投げるというものでした。
でも本当は向けた方向に投げてもいずれは落ちてしまいます。
なぜでしょう?それは、重力があるからです。
なので、現実はななめ上に投げたボールは山なりの軌道を描いて地上に落ちますね。
じつは、こんなこともプログラミングで再現することができます。
物理の公式で、位置は早さと加速度と時間で計算ができるようになっています。
パソコンの得意分野ですね。
公式をスクラッチのブロックで組み上げて、そこに変数として速さと時間と加速度を代入すると、出来てしまうんですね!
時間は一定に増えていく変数もしくはタイマーが使えますし、加速度は重力加速度の9.8m/s^2を使えばいいです。
速さは最初の投げる速さで、最初に聞いて待つこともできます。
なげる方向が決まったら垂直方向と水平方向に分解して、x座標とy座標それぞれ計算すればできそうです。
パソコンの中も、わりと現実なんですよね。
ポストの画像またはリンクをクリックするとメール送信画面になります。
内容があまりにひどい場合はスルーしますが、質問等ある人はこちらへどうぞ。
←問い合わせはポストをクリック(タイトル記入済み)
メールアドレスを直接打ち込みたい人はコチラをコピーしてご利用ください。
mailto:o.kawajuku.pc@gmail.com