Scratchで簡単なストーリーを作ってみましょう。本連載は、親子で読むプログラミング初心者向けの学習サンプルになっています。

はじめに

本連載は、プログラミング学習に関心のある保護者の方が、お子さま(小学3年生以上)と一緒に読むことを想定して書いています。

なるべく分かり易く解説するように努めていますが、”Scratch (以下分かりやすく日本語で「スクラッチ」と書きます) ”が何であるか、どのように操作するのか、という内容については、過去の記事をご覧ください。

課題と目標

今回は、たまごをノック(クリック)すると、たまごが揺れて反応し、何度かノックしたときに割れて、ひなが顔を出す、という簡単なストーリーを作ります。

普段の講座では、たまごやひなのお絵描きからご指導させていただくのですが、今回のこの講座でのスプライト(キャラクター)などの用意は、以下のリンクから作品を「リミックス」してください。

作品の完成イメージ
作品の完成イメージ

https://scratch.mit.edu/projects/392695245/

この課題は前半、たまごが揺れる、割れるという動きを、アニメーションとしてどう表現すれば良いのかを一緒に考え、後半は「変数」、「条件分岐」、「オブジェクトとインスタンス(クローン)」といったプログラミングの普遍的な概念について触れます。

動きを作る

まず最初に、「イベント」のカテゴリーから「メッセージを受け取ったとき」というブロックを取り出し、「ノック」と「割れる」の2つの新しいメッセージを作ってください。そしてそのブロックに続けて、以下の動きを作ってください。

たまごが揺れる

たまごをノックしたとき、中のひなが何か反応を返すとします。この反応は、どのように表現できるでしょうか。実際にたまごを手に取って、考えてみましょう。

たまごは底が丸いので、テーブルに置こうとするとツルンと滑ってしまいます。この動きは回転する動きの一部だと考えることができます。スクラッチでは、「動き」のカテゴリーの中の「〇度回す」というブロックで表現できそうです。

「角度」をまだ習っていないお子さまでも、

  • 右に15度回す
  • 左に15度回す

というブロックを交互に押していけば、たまごが揺れる動きを表現できます。

ブロックを連結させるときは、たまごの向きを変えた後に「0.1秒」で良いので「待つ」の動作を加えてください。そうしないと、命令は一瞬で実行されますので、動くようには見えません。

さて、回答は無数にあると思いますが、僕の回答はこんな感じです。

たまごが割れる

たまごが割れるアニメーションは、たまごの「動き」や「見た目」を操作しても難しいので、スクラッチの「コスチューム」という仕組みを使います。

用意されたスプライトには、「egg (たまご) 」と「broken (割れている) 」の2つのコスチュームがあるので、それを切り替えればOKですね。

表現として、割れたたまごは倒れつつ消えてしまうことにしましょう。プログラムが始まるときと、終わるときの状態を決めて、その間を「繰り返し」を使って変化を滑らかにします。こういうときも算数の考え方を使います。例えばですが、

  • x座標は、0から-120へ変わる(120減る)
  • y座標は、-60から-150へ変わる(90減る)
  • 向きは、90度から、0度に変わる(90減る)
  • 幽霊(透明)の効果は、0から100に変わる(100ふえる)

この始まりと終わりの変化の量を、繰り返しの回数で割って、1回の変化分を求めることができます。すると、僕の回答はこんな感じになりました。

みなさんの答えはどうですか。

割り算を習っていないお子さまには少し理解が難しいかもしれませんが、結果を見れば、掛け算の応用であることに気付けると思います。

今日の内容は、実際にブロックを組み立てた作品を、以下のリンクから見ることができます。

https://scratch.mit.edu/projects/392699917/

今日のお話はここまでです。また明日!