18 音を鳴らしてみよう
18.1 音を鳴らす方法
BSoundライブラリを使うと、MP3、WAVE、MIDI形式のファイルを制御して、音を鳴らすことができます。
BSoundライブラリをプログラム内で利用するためには、プログラムの行頭に次の1行を加えます。
import blib.sound.BSound;
MP3、WAVE、MIDI以外のファイルを鳴らしたい場合は、変換サイトで対応できるファイル形式に変換してください。
18.2 BSoundの使い方
18.2.1 BGMを鳴らす場合
BGMなど再生時間が長い音を鳴らす場合は、まず再生するファイルを指定して、BSound オブジェクトを作成します。
BSound bgm = new BSound("bgm.mp3"); //BSoundオブジェクトを作成する
そして、作成したBSoundオブジェクトに対して、play() や stop() などの命令を行います。
bgm.play(); //BGMを再生する
18.2.2 効果音を鳴らす場合
効果音など再生時間が短い音を鳴らす場合は、BGMと同じ方法でも鳴らすことができますが、次のような簡易的な命令を使うこともできます。
BSound.play("fire.wav");
また、次のように音量を指定して再生することもできます。
BSound.play("fire.wav", 100); //効果音を再生する
ただし、上記2つの簡易的な命令で音を再生した場合、その音を途中で停止したり、音量を変更したりすることができません。
18.2.3 あらかじめ音を読み込んでおく
音の再生時に反応速度が重要な場合は、あらかじめ音を読み込んでおくこと、再生するまでの反応速度を早くすることができます。
BSound.load("fire.wav"); // あらかじめ効果音を読み込んでおく
BSound.play("fire.wav"); // 効果音を再生する
ただし、再生時間が長い大きなファイルを読み込む場合は、それだけメモリが必要になります。
18.3 BSoundで利用できる命令
18.3.1 再生と停止
-
play()
-
音を1度だけ再生します。
-
loop()
-
音をループ再生します。音の再生が終わると、もう一度はじめから再生します。stop()が呼ばれるまで再生し続けます。
-
stop()
-
音を停止します。
-
isPlaying()
-
音が再生中かどうか調べます。必ず、if文の条件文の中に書いて下さい。
18.3.2 音量の取得・変更
-
getVolume()
-
音量を取得します。取得する音量は0(消音)から100(最大音量)のいずれかです。
-
setVolume(??)
-
音量を??に設定します。設定できる音量は0(消音)から100(最大音量)までです。
-
getDefaultVolume()
-
初期設定の音量を取得します。取得する音量は0(消音)から100(最大音量)のいずれかです。
18.3.3 簡易再生
-
BSound.play(??)
-
指定した音ファイルを再生します。効果音など再生時間が短いファイルを再生する場合に最適です。ただし、この方法で再生した音は途中で停止したり、音量を変更したりすることはできません。
-
BSound.play(??, ??)
-
1番目の引数で指定した音ファイルを、2番目の引数で指定した音量(0-100)で再生します。効果音など再生時間が短いファイルを再生する場合に最適です。ただし、この方法で再生した音は途中で停止したり、音量を変更したりすることはできません。
18.3.4 音の読み込み
-
BSound.load(??)
-
指定した音ファイルを読み込みます。ファイルを読み込んだ場合、反応速度が早くなりますが、ファイルを読み込むためのメモリ領域が必要です。
18.4 練習問題
18.4.1 問題1:シューティングゲームに効果音をつけよう
11章の最後にあるシューティングゲームを改良して、効果音をつけましょう。
次の2つの場合において、好きな音を鳴らして下さい。
- ドラえもんが弾を発射したとき(上キーを押したとき)。
- 弾が星に衝突したとき。
18.4.2 問題2:シューティングゲームにBGMをつけよう
上の問題で効果音をつけたシューティングゲームに、今度はBGMをつけましょう。