こんにちは、沖縄市にある子供向けプログラミング教室AID IT.KIDS(エイド)のミチノリです。生徒さんからボールが跳ね返る動き方を知りたい!というリクエストがあったので、サンプルとして作ってみました。

こちらが完成版のサンプルです。キーボードの右と左で猫が動いて、スペースキーを押すと玉を発射します。

今回作ってみたサンプルプログラムでは、猫がボールを発射して、それがスプライトで描いたステージにぶつかると跳ね返って、敵のスプライトに当てる事が出来たらおしまいとなります。実際に作ってみて、いくつか改善しないといけない点はありますが、初級編としてお試し下さい!

まずは猫のプログラムを作ります。上の画像を参考にして下さい。旗が押されたら大きさと座標の位置を指定します。今回のサンプルでは、画面の左側に猫を設置しています。右向き矢印と左向き矢印が押されたら、それぞれ猫が回転するようになっています。

次は、ステージとなるスプライトを描いていきます。スプライトを選ぶ(顔みたいなボタン)をクリックして、「描く(筆のアイコン)」をクリックして下さい。描くをクリックすると、すぐにコスチュームを描画する画面になりますが、そのまま描いてしまうと、X座標とY座標がずれてしまう場合があるので、まずはステージを描く前に、下記のようにX座標とY座標を0の位置に指定して下さい。

X座標とY座標の位置を指定したら、ステージとなるコスチュームを描いていきましょう。コスチュームのタブに移動して下さい。

ここからが、今回作るプログラムでの1つ目の注意点になります。

1.ステージの横の線は黒で描く!
2.ステージの縦の線は赤で描く!

です!今回のサンプルプログラムでは、出来るだけシンプルに作れるように、色に応じて跳ね返りの処理をしています。縦の線も、横の線も、多少斜めに傾いても問題はありません。慣れていくと、いくつかのパターンで作れますが、まずは下記のようにカクカクした感じで作ると分かりやすいと思います。

まずはコスチューム1を上記のような形で作り、その後、慣れたらコスチューム2、3といった感じで増やしてみて、動きがどう変化するかをチェックしてみて下さい。

scratchでは、色にも数値が与えられています。マウスでメモリをドラッグして色を変える事が出来ますが、ちょっとでも色の数値がずれるとプログラムが正しく動かなくなるので、次の画像のように赤色は「色0、あざやかさ100、あかるさ100」にして、黒色は「色0、鮮やかさ100、あかるさ0」にすると反応しやすくなります。

次は敵となるスプライトの動きを作ります。ここはかなりシンプルなプログラムになっています。注意点として、描いたステージの大きさや位置によって、敵の配置が異なるので、X座標とY座標の数値は変更して下さい。

旗が押されたら、X座標とY座標の位置を指定して、ボールのスプライトに触れたら終了となるようにプログラムしています。

最後にボールのプログラムを作りますが、二つ目の注意点です。

ボールの角度を変えるために、(180 – むき どにむける)と(0 – むき どにむける)という部分が出てきますが、ここの説明は省きます。この部分の構造をしっかりと理解して納得するには、学年の高さに応じた数学の勉強(算数?)をきちんと理解しているかになりますので、とりあえずは「scratchで縦横にボールを反射させるにはこう組み合わせたら良い!」といった感じで覚えていてください。

それ以外の部分ですが、今回のプログラムでは、旗が押されたら、ボールは猫(スプライト1)の位置に移動して、スペースキーが押されたら、猫の向きを取得します。この「スプライト1の向き」のブロックは、「調べる」の所にある「ステージのはいけい#」の選択項目を変えたものです。

ボールに猫の向きを与えたら、その後、200回くりかえす×10ほうごかす の分、ボールは動き続けます。この「200回」と「10ほうごかす」の数値は、自分の好みに合わせていじってみてください。

■最後のサンプルプログラムはこちら

scratchで、ボールを反射させるプログラムの方法は色々とあると思いますが、今回は出来るだけ簡単かつ、初心者でもサンプルを元にマネしていけば1時間以内で作れるように考えてみました。

もしよければ、試して作ってみてくださいー!