フィジカルシューティングゲームに“よりゲームらしい演出”を加えてみよう!Scratch 2.0で体験! お手軽フィジカルコンピューティング(6)(3/4 ページ)

» 2014年07月09日 09時00分 公開
[今岡通博MONOist]

ステージの改良

 今回のステージは、いろいろと重要な役割を持たせました。具体的には、BGMを鳴らしたり、ネズミのクローンを生成したり、ゲームオーバーの判断をしたりなどです。常にスクリプトが動いている状態ですね。

 プロジェクトエディタ中央にあるブロックパレットのタグを「音」にします。まず、ネズミと格闘しているときに流れるBGMを作ります。

 筆者は、元になる音源として、音ライブラリにある「human beatbox1」を利用しました(図9)。これを少し編集します。ネズミを全て退治した時点で、後述の鐘が鳴ってゲームクリアとしたかったのですが、ネズミが全ていなくなった時点でこの曲が終わらないと、合図の鐘を即座に鳴らすことができません。そこで、筆者はBGMのテイクを短く編集して、それを繰り返すことにしました。


BGM 図9 BGMの編集 ※画像クリックで拡大表示

 編集で1回のテイクを2秒足らずにしたので最長でも2秒後には終了の鐘がなるというわけです。ただし、繰り返しても違和感のないように適当な区切りを見つけるには多少カット&トライが必要です。サウンドエディタの波形ウィンドウの下にドロップダウンの編集メニューがありますので、それらを駆使して音源を自由自在に編集することが可能です。

 次に、終了の合図の鐘の音を音ライブラリから取り込みます。筆者は「bell toll」を選択しました。これは無修正で使いました。

スクリプト

 続いて、プロジェクトエディタを「スクリプト」に切り替えて、ステージのスクリプトを見ていきましょう(図10)。ステージのスクリプトは、2つのブロック列が並列に動作する構造になっています。

ステージのスクリプト 図10 ステージのスクリプト ※画像クリックで拡大表示

 まず、左から見ていきましょう。このブロック列は、ネズミのクローンを生成するスクリプトです。緑フラグをクリックすることで起動します。はじめに、変数scoreを0クリアします。scoreは、退治したネズミの数を格納する変数です。aliveは、ステージに登場させるネズミの数を指定する変数です。この回数ループが繰り返されます。ループの中では、スプライト(Mouse1)のクローンの生成が実行されます。このループは、0.5秒間隔で実行されます。ループが終了すると、このブロック列は終了です。

 次に、図10の右側のブロック列を見ていきましょう。これも緑のフラグがクリックされたら起動します。最初にscoreとaliveの値が一致するまでループが繰り返されます。これは、生成したネズミの数と撃退したネズミの数が一致するまでループが繰り返されるという意味です。すなわち、ステージ上からネズミがいなくなるまでこのループが繰り返されます。このループの中で、2秒間に編集したBGMが繰り返されます。

 ネズミが全て撃退されると、このループを抜けて、終了の合図である鐘(bell toll)を鳴らし、スクリプトは終了となります。

Copyright © ITmedia, Inc. All Rights Reserved.