Scratchプログラミング初心者向けの教材。繰り返し作業の定義とスプライトのプロパティを 活用したオブジェクト指向的な考え方を学ぶ。
体験できること
■ [定義]ブロックを使って、同じ事を繰り返す作業を楽にする。
■ [オブジェクト指向]:スプライト1個ずつ(それ自体)が、決められた動作をしたり、判断したりする。
素材はこちら(https://coderdojoome.github.io/dl/oct.zip)。
1.画像ファイル(png)3個から、かぼちゃのスプライト1個を作る。そんで、アニメーションする(画像は3つあるけど、2個だけ交互に繰り返す)。
2.完成したアニメを縦横5x5ずつに並べる。
3.「メッセージ」を使って、「全員~、進め」(といっても左右に)を号令する。全員動く。
4.画面の端まで移動したら、逆方向に進む(できれば、その時、一歩、画面したへ前進する)。
5.がぼちゃたちが左右に移動できたら前半は成功。新しくスプライトを用意し、ダウンロードした(splite3)ファイルをスプライトに読み込む。キー操作[←][→]で動かしてみよう。
6.ここから改造して本格的なゲームを作る。
Zipファイルを解凍して4つのファイルを確認する。
・ pumpkin00.png
・ pumpkin01.png
・ pumpkin02.png
・ Snowman.sprite3
最初から存在する[スプライト1]は、ゴミ箱アイコンをクリックして削除しておく。
1.何も書いていない[コスチューム1]が残っていたら削除する。
2.図のようにコスチュームの順番を入れ替える。
名前は[かぼちゃ]、大きさは[50]%にする。
1.マウスで[かぼちゃ]を選択する。
1.[ブロック定義]を選んで[ブロックを作る]をクリック。
2.[ブロック名]は、分かりやすいように[アニメーションする]に書き換える。
[旗が押されたとき]ブロックの次に、[アニメーション]定義ブロックを置く。
[ずっと]ブロックの中に、0.5秒毎にかぼちゃの画像01と02を入れ替えるプログラムを作る。
コスチュームの名前が01なら、02の画像にする。01でなければ01の画像にする。
旗をクリックして、かぼちゃがアニメーションするか検査する。
1.[ステージ]を選択する。
2.グローバル変数[glb_X]と[glb_Y]を作る。グローバル変数は全てのスプライトで読める変数です。
3.旗が押されたら、X座標を50ずつずらして[かぼちゃ]を置く。
4.最初のX座標は-170で、[かぼちゃ]のクローンを作成したらX座標を50ずつ右側にずらす。これを5回繰り返す。
1.旗が押されたら、最初のかぼちゃは隠します。
2.[クローン]されたら、かぼちゃを表示します。
3.X座標は、グローバル変数の[glb_X]とします。つまり最初は-170。次が50右。
旗をクリックして、かぼちゃがアニメーションするか検査する。
1.縦方向にも[5回繰り返す]を追加する。
2.プログラムはこうなる↓。『横方向[glb_x]を5回繰り返す』というのを、さらに『縦報告[glb_y]も5回繰り返す』。
旗をクリックして、かぼちゃが縦横に5個ずつ表示するはず。
1.背景は、[Stars]を選ぶ
2.[背景1]が残った場合は削除
1.スプライト名を[かべ]にする。
2.大きさを[100]%、Xを[0]、Yも[0]にすると画面の左右にぴったり表示されるはず
x座標を、ずっと+1ずつ変化させると右に進む。
1.[かぼちゃ]スプライトを選んで、ローカル変数[my_x]と[my_y]を追加する。 この時に、[このスプライトのみ]を選ぶこと。これはかぼちゃの現在位置を、かぼちゃ一人一人に覚えてもらうため。
2.ステージのプログラム「縦横に5回ずつ、かぼちゃのクローンを作る」で、[glb_x]と[glb_y]を指定していたが、 かぼちゃのローカル変数[my_x], [my_y]に代入してからアニメするように改造する。
1.グローバル変数「進む方向」を追加する。変数名は日本語でも良い。 2.ステージのプログラムに、変数ブロックの[*を*にする]とイベントブロックの[メッセージ1を送る]を選んで、 メッセージ名を[全体~、進め!]に変える。
[かぼちゃ]のプログラムに戻って、[全体~、進め!を受け取った時]ブロックを追加する。 進めの号令がかかったら、ずっとX座標を+1ずつ変化させて移動する。
旗をクリックして、かぼちゃが全員、右に進むはず。
壁にぶつかったら、[進む方向]を反転してx座標を-1する。
1.[かべ]スプライトにプログラムを作る。
2.もしも、左右のどちらでもいいので[かべ]が[かぼちゃ]に触れたら、
[進む方向]を反転する(-1をかける)。進む方向が+1なら-1になって、-1なら+1になる。
旗をクリックして、かぼちゃが全員、左右に動くはず。
壁にぶつかったら、Y座標を下側にずらす。
[かべ]と[かぼちゃ]が触れたとき、同時にメッセージ[一歩、前に進め!]を送る
1.[一歩、前に進め!]を受け取ったら、
2.Y座標を下側に進める(-30を足す)。この時、3歩進むアニメーションを演出したいので、
-10ずつにして3回繰り返す。
旗をクリックして、かぼちゃが左右に動いて、[かべ]に触れたら前に進むはず。
1.一番最初にダウンロードした[Snowman.sprite3]を選ぶ。
1.ブロックが増えてきたので、[かぼちゃを整列する]定義を分けて、見やすく整理した。
2.[Snowmanのクローンを作る]ブロックを追加した。
1.旗をクリックして、雪だるまが表示されるのを確認する。
2.キーボード[←][→]のキーを押してみよう。
1.新しいスプライトを作って、自分でコスチュームで雪玉を描いてみて。
2.スプライトの名前は[雪玉]ね。
1.雪だるまが[スペース]キーを押したら、[雪玉]のクローンを作ります。
2.雪だるまの現在位置(X座標)を、グローバル変数[雪玉]に代入します。
1.[雪玉]がクローンされたとき。
2.変数[雪玉]には、雪だるまのX座標が入っている。
3.Y座標を上側に向かって変化させる(つまりY座標が170になるまで+5ずつ進む)。
スプライト名[雪玉]と変数[雪玉]を同じ名前にしたの失敗だったな。変数は[雪玉X座標]とかにすれば良かったかな、混乱しないように気を付けてね。
1.「もし[雪玉に触れた]なら」ブロックを追加する
2.メッセージ[当たった]を送る
3.コスチュームをかぼちゃが割れた絵にする。
4.一瞬(0.3秒)待って、このかぼちゃを削除します。
雪だるまが投げた[雪玉]が[かぼちゃ]に当たったら、 [かぼちゃ]が割れて、かぼちゃも雪玉も消えれば成功。
ここまでの完成品は、これだ!
(https://scratch.mit.edu/projects/429826071/)