【作り方解説】Scratch(スクラッチ)で作った「棒人間スイッチ!」棒人間アニメーション9種類の紹介

Scratch(スクラッチ)で作ったスイッチ用のボタンを押すと、9種類の棒人間アニメーションがスタートするプロジェクトの作り方解説動画です。
「メッセージを送って待つ」ブロックと(コスチュームの番号)値ブロックを利用したスクリプト、変数をフラグとして利用するやり方について解説します。

棒人間スイッチのプロジェクトの動画解説

棒人間スイッチ!

ゲームのやり方

9個のボタンをクリックすると、棒人間アニメがスタートします。

 

本作品のScratchプロジェクトは、https://scratch.mit.edu/projects/798688213/です。

棒人間のコードとコスチューム

コード

コスチューム

1番のメッセージを受け取ったときのスクリプト
9種類のこのようなスクリプトがあるが、これはハンマーのボタンを押したときに実行されるスクリプト。メッセージ名は、メッセージを送るスクリプトがあるボタンのスプライトのコスチューム番号に合わせ、1, 2, 3, 4, 5, 6, 7, 8, 9と数字に設定した。

  1. 「1」のメッセージを受け取ったら、コスチューム「A1」にする。
  2. 0.18秒待った後に、4回「次のコスチュームにする」ブロックを実行する。
    コスチューム「A1」は、コスチューム番号1番のコスチュームなので、1番 → 2番 → 3番 → 4番 → 5番のコスチューム番号のコスチュームに変わる。また、ハンマーのスプライトがちょうど、棒人間を叩いたタイミングでコスチューム番号5のコスチュームになるように、0.18秒待つブロックを追加した。
  3. 「pain」の音を鳴らし、1秒待つ。
  4. コスチュームを、その時点でのコスチューム番号から1を引いたコスチューム番号のコスチュームに変える。この処理を4回繰り返す。
    処理2でコスチューム番号が5番のコスチュームになっているので、5番 → 4番 → 3番 → 2番 → 1番のコスチュームに変わる。つまり、最初のコスチューム「A1」に戻る。

ハンマーのスクリプト

1番のメッセージを受け取ったときのスクリプト
ハンマーは1番のメッセージを受け取ったときだけに利用するスプライト。

  1. 「1」のメッセージを受け取ったら、ステージに表示する。
  2. 180度の向きにして、変数の値を0にセットする。
  3. ハンマーの向きが100度よりも大きくなるまで、変数の値分だけハンマーを左回転させる。変数は3ずつ増えるので、左回転の回転度数は徐々に大きくなる。
    変数の値を3ずつ増やすことにより、ハンマーのスイング速度が加速するようになる。
  4. 1秒待ってから、もとの角度の180度に戻り、その後0.5秒待ってからステージから隠す。

ボタンのコードとコスチューム

コード

コスチューム

クローンを9体生成するスクリプト
  1. 変数「onAnimation」の値を0にセット。
    この変数「onAnimation」は、棒人間がアニメーションのスクリプトを実行中か、実行中でないかを識別するためのフラグとして使用する。
  2. ステージから姿を消し、大きさを50%、コスチュームをコスチューム番号1、x座標=-212, y座標=-135にセットする。
  3. クローンを作り、x座標を53だけ右にずらし、コスチュームを次のコスチュームに変える。この処理を9回繰り返す。
    ボタンのコスチュームは9つあり、1番のコスチュームから9番のコスチュームのクローンがステージ下に表示されるようになる。

クローンのスクリプト
  1. クローンされたとき、ステージに表示する。
    本体が隠れている状態でクローンを生成した場合、クローンも隠れている状態で生成される。
  2. マウスポインターがクローンにふれたとき、変数「onAnimation」の値が0ならば、最前面に表示され、大きさが少しだけ大きくなる。50%の大きさから58%の大きさに変わる。
  3. 処理2の状態でマウスをクリックしたら、変数「onAnimation」の値を1にして、明るさの効果を10にして、「push」の音を鳴らして0.5秒待つ。
    このフラグ用の変数「onAnimation」をこのタイミングで1にすることにより、処理2の条件は偽(False)となるので、棒人間アニメを実行中に他のボタンのクローンをクリックしても他のメッセージが送信されないようになる。このスクリプトがないと、棒人間アニメの実行中に他のボタンもクリック出来てしまい、棒人間は新しいメッセージの処理も実行しようとしてしまうため、棒人間のアニメーションが正しく動かなくなる。
  4. クリックしたボタンのクローンのコスチューム番号を送って待つ。
    は、クリックしたボタンのクローンの番号のメッセージを送って待つ。例えば、ハンマーの見た目のボタンをクリックした場合、ハンマーの見た目のボタンのコスチューム番号は1番なので、「1」のメッセージが送信される。そして、「1」のメッセージを受け取った棒人間は、「1」のメッセージを受け取ったときハットブロックの下に連結されたスクリプトを実行する。また、送って待つブロックは、送ったメッセージの下に連結したスクリプトが実行し終わるまで、次のブロックは実行されない。
  5. メッセージを受け取った棒人間がアニメーションのスクリプトを実行し終わったら、明るさの効果を0に戻し、変数「onAnimation」の値を0に戻す。
  6. また、マウスポインターがクローンにふれたとき、変数「onAnimation」の値が0でないなら、ボタンのクローンの大きさは50%にする。
  7. 処理2~6をずっと繰り返す。
「メッセージを送って待つ」と「メッセージを送る」の違い

 

 

を使った場合、に連結されたスクリプトを実行し終わってから、の下に連結したブロックが実行される。

 

 

を使った場合、に連結されたスクリプトとの下に連結したブロックは同時に実行される。

Scratch3.0(スクラッチ3.0)とは?

MITメディアラボにより開発されたビジュアルプログラミング言語。子供たちが物語やゲーム、 アニメーションなどのインタラクティブな作品をプログラミングできる。また、自分の作った作品を世界中の人々と共有できるコミュニティーサイトでもある。世界中で9千万人を超えるユーザがいる。
こちらのホームページにアクセスすれば無料で利用できる。