スクラッチプログラミング

4-3 チャレンジ ダンス

ループの知識が身に付いたので、次はスクラッチに用意されているダンサーのスプライトを使って、躍らせてみましょう。スプライトのコードブロックで、コスチュームをずっとループさせると、ずっと躍りつづけるプログラムが作成できます。

ステップ1

  1. 新規プロジェクトを作成し([ファイル]->[新規])、プロジェクト名を「ダンス」にします。
  2. [スプライトリスト]にあるネコのスプライトを削除します。
  3. [スプライトリスト]->[スプライトを選ぶ]からスプライトライブラリを表示し、[人]をクリックして、表示される検索結果から[Ben]と[Max]を選択してプロジェクトに読み込みます。

ステップ2

まずはBenのスクリプトからです。

  1. [スプライトリスト]でBenをクリックし、Benの[コードエリア]を開きます。
  2. [コスチューム]タブをクリックします。するとBenのコスチュームはben-a、ben-b、ben-c、ben-dの4つがあることが分かります。下図のコスチュームを1->2->3->4 と順に送り、4の次に1->2とつづけると、循環するダンスのアクション、つまりループするBenのダンスが作り出せます。
  3. コスチュームを次のコスチュームに変えるには、[見た目]->[次のコスチュームにする]を使います。このとき、変わったコスチュームを表示する時間を作らないと、人間の目には変わったように見¥ほえません。0.5秒など短い時間を指定すると、速い動きになります。
  4. 次のコスチュームにして0.5秒待つと、次のコスチュームの状態を0.5秒つづけることができます。これを繰り返しずっとつづけるには、[制御]->[ずっと]ブロックを使います。[すっと]ブロックのへこみの中に、[次のコスチュームにする]と[0.5秒待つ]を入れます。
  5. [緑の旗]ボタンをクリックしてプログラムを実行します。ステージにいるBenがダンスを始めます。1つのコスチュームの表示時間は0.5秒なので、0.5秒刻みでコスチュームが変わっていきます。また[ずっと]ブロックループしているので、[停止]ボタンがクリックされるまで、Benは踊りつづけます。
  6. 次は左右に動くようにしてみましょう。[動き]->[(10)歩動かす]をドラッグして、[ずっと]内の[0.5秒待つ]の下にドロップします。
  7. [緑の旗]ボタンをクリックしてプログラムを実行します。Benはダンスしながら右へ移動していくように見えます。
  8. プログラムを停止しないでおくとBenはステージからいなくなってしまうので、左に10歩動くようにして、戻しましょう。
    [動き]->[(10)歩動かす]をドラッグして、前の[(10)歩動かす]の下にドロップします。今度は10歩だけ左に動かしたいので、(10)をクリックして編集可能状態にし、10を-10に変更します。-10歩だけ移動するので、左に動くことになります。
  9. Benをドラッグしてステージの左端に戻し、[緑の旗]ボタンをクリックして動作を確認します。Benは右に移動して、その後左に移動するはずなのですが、ずっとその場で踊っているように見えます。
  10. これは、[(10)歩動かす]で10歩右に動いた後すぐ、[(-10)歩動かす]で左に動いているからです。一瞬の動きで、人間の目には速すぎて見えません。ここでもその状態を適切な時間だけつづける必要があります。

  11. [(0.5)秒待つ]を最後にもう1つ追加することもできます。するとコスチュームを変える循環のに1.5秒かかることになるので、追加する前より素早くはなくなります。

ステップ3

次はMaxのスクリプトです。[スプライトリスト]でMaxをクリックして、左上の[コスチューム]タブをクリックします。するとMaxスプライトには、max-a、mix-b、max-c、max-dという4つのコスチュームが用意されていることが分かります。

この中でmax-dだけがバスケットボールを持っています。Benにように[次のコスチュームにする]を使うと、このmax-dも表示され、バスケットボールが突然現れ突然消えることになるので、不自然です。そこで、ここでは[次のコスチュームにする]ではなく、コスチュームを指定して変更する[コスチュームを( )にする]を使うことにします。

下図を見ながら、Maxのスクリプトを組んでみましょう。先に[コスチュームを( )にする]と[(1秒)待つ]をドラッグ&ドロップして吸着させ、[コスチュームを(max-a)にする]と[(0.5秒)待つ]に変更したものを右クリックして[複製]すると、作業が効率的です。

[緑の旗]ボタンをクリックしてプログラムを実行します。BenとMaxがダンスを始めます。ダンスは[ずっと]コードブロックで無限につづくので、プログラムを停止するときには赤丸の[停止]ボタンをクリックします。

ステップ4

マックスをジャンプさせてみましょう。腕を振り上げたときにジャンプし、下げたときに着地します。

これは、腕を上げたコスチュームのときスプライトのy座標を今よりも10大きくし、腕を下げたコスチュームのときスプライトのy座標を今よりも10小さくすることで実現できます。[y座標を( )ずつ変える]コードブロックは青い[動き]の中にあります。y座標はステージの上へ進むほど大きく、下へ進むほど小さくなるので、着地するときにはマイナスの値にします。

[y座標を( )ずつ変える]は、今の位置から、( )内で指定した分だけ上下方向にスプライトを移動させます。スプライトはプラスの数値で上に、マイナスの数値で下に移動します。

ステップ5

楽しそうな背景を選んで読み込みましょう。下図ではPartyを使っています。

ステップ6

最後にBGMを入れましょう。入れる先はステージにします。右下で[ステージ]をクリックして選択し、左上の[音]タブをクリックして、左下のスピーカーアイコンにカーソルを重ねて表示される[虫メガネ]をクリックします。

音の選択では[ループ]ボタンをクリックしてループして使えるサウンドに限定します。下図では「Dance Celebrate」を選んでいます。

BGMはステージの[コード]タブで設定します。

BGMとして使用するには、[ずっと]の中に[終わるまで( )の音を鳴らす]を入れて、サウンドを再生するのが適切です。もう1つ[( )の音を鳴らす]ブロックがありますが、これを使うと、曲が終わらないうちに次の回を再生を始めてしまいます。

ここまでのプロジェクトファイルは、次のURLリンクにアップロードしています。

https://himco.jp/prog/4/dance_loop.sb3

ダウンロードしたsb3ファイルは、スクラッチ画面の[ファイル]->[Load from your computer]を選び、sb3ファイルを指定することで、スクラッチ上のプログラムとして実行できます。詳しくは「2-2 チャレンジ#1」の「プロジェクトの保存と再開」を参照してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です