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をつけましょう。