フィジカルシューティングゲームに“よりゲームらしい演出”を加えてみよう!:Scratch 2.0で体験! お手軽フィジカルコンピューティング(6)(2/4 ページ)
Webブラウザだけでプログラム開発から実行まで行える「Scratch 2.0」を用い、センサーの接続や外部デバイスのコントロールに挑戦! 今回は、前回作成したフィジカルシューティングゲームを改良し、ゲームをより楽しむための演出を加えていきます。
ネズミの被弾音
続いて、ネズミが被弾したときの効果音を作ります。ブロックパレットのタグを「音」に切り替えます(図6)。すると、プロジェクトエディタの右画面がサウンドエディタに切り替わります。
次に、サウンドエディタの左上にある「新しい音」のアイコンから[スピーカ]アイコンを選択して、音ライブラリのページに移ります。ここで、ネズミが被弾したときのイメージを連想できるような音源を選択してください。ちなみに、筆者は「beat box2」という音源を選択しました。
サウンドエディタは、元の音源を加工することもできます。先ほど選択した音源では音が小さ過ぎるので、音量を大きくしてみたいと思います。まず、加工したい音源の範囲を選択します。次に、右クリックで表示される効果の選択リストから「大きく」を選びます(図7)。
筆者の場合、一度では好みの大きさにならなかったので、この操作を何度か繰り返して被弾の効果音として迫力のある音量まで大きくしました。サウンドエディタの効果(エフェクト機能)には、これ以外にも「フェードイン」「フェードアウト」「やわらかく」「サイレンス」「逆向き」などがあります。効果を施した音源は、[再生]ボタンで聞くことができますので、音量や効果など確認しながら作業を進めてください。効果がイメージ通りでなかった場合は[戻る]ボタンで元に戻すこともできますので、安心していろんなエフェクトを試してみてください。
ネズミのスクリプト
前回のゲームでは“音量の変化”をイベントとして捉えましたが、今回はループ制御の中で音量の変化を監視しています(これをポーリング方式と呼ぶ)。以前の記事では、イベントドリブン方式のメリットのみを紹介しましたので、ここではポーリング方式のメリットについて触れておきましょう。
ポーリング方式には、
- CPUやハードウェアに依存することなく、ソフトウェアだけで実現できる
- ソフトウェアの組み方により反応時間を見積もれる
- 割り込みが発生しないイベントにも対応できる
などのメリットがあります。
仕様追加が見込まれる場合やプロトタイプなどの場合には、イベントドリブン方式が便利かもしれません。一方、仕様が固まって時間的にクリティカルな対応が要求される局面ではCPUクロックを上げて、ポーリング方式で対応した方が確実かもしれません。このように、要求仕様に応じて使い分けができるようになれば、あなたも立派な組み込みエンジニアの仲間入りです!
図8は、ネズミのスクリプトです。ネズミのスクリプトの起点は、このスプライトがクローン生成されたところから始まります。ネズミのスプライトのクローン生成は、ステージのスクリプトに書かれています。そして、「クローンされたとき」は、制御ブロック群から選択できます。
次の初期処理では、ネズミのコスチュームの大きさを調整しています。筆者は、80%としていますが、好みに応じて調整してください。そして、「前に出す」は、スプライトが重なったとき、このスプライトを現時点で最前面に表示します。さらに、ネズミが進む方向(270度から360度までの間)を乱数で指定しています。角度は、ステージの右下の角(x:240、y:−180)から画面中央方面に向けて進むようにしてあります。次に、コスチュームを通常のネズミに設定してステージ上に表示させます。
続く永久ループでは、ネズミが5歩ずつ移動して、ステージの端まで到達すると折り返すという動作を繰り返しています。ループの中の条件文では、照準の中にネズミが入り(スプライトaimに触れた)、かつその際のセンサーの値がlevel以上かどうかを判断しています。これらの条件がそろった場合、コスチュームを火だるまになったネズミに変更して、被弾音を鳴らします。その後、ネズミを仕留めた数(score)に1加算して、このスプライト自体を消滅させます。このスクリプト中のlevelとscoreは、「変数」と呼ばれる値を格納する場所に付けられた名前です。データブロックでこれらの変数を定義できます。
Copyright © ITmedia, Inc. All Rights Reserved.