[目次へ][前へ][次へ][表紙へ]
 BGM

 1.mci命令

 前にも書きましたが、mmplay命令でMIDIファイルの音楽を流そうとすると、mmplay命令を行ってから実際に流れ出すまでの間、ファイルの読み込みのためにプログラムが止まってしまいます。そこで、mci命令を使います。

例.音楽を流し、Zキーで止めます。

	mci "open rkm.mid alias bgm"
	mci "set bgm time format milliseconds"
	mci "play bgm from 0"

*Main_Loop
	await 16
	getkey key, 90
	if key == 1 { mci "stop bgm" }
	goto *Main_Loop
 2.一時停止

 本講座のサンプル・ゲームでは扱いませんが、音楽を一時停止する方法を説明します。

	mci "status bgm position"
	bgm_position = stat
	mci "stop bgm"

 現在の再生位置を変数bgm_positionに入れて曲を止めます。

	mci "play bgm from " + bgm_position

 一時停止した位置から再生します。

例.Zキーで一時停止、再生を行います。

	mes "Zキーで一時停止、再生を行います"
	mci "open rkm.mid alias bgm"
	mci "set bgm time format milliseconds"
	mci "play bgm from 0"
	playing_f = 1
	zkey = 0
	
*Main_Loop
	await 16
	gosub *Input_Key
	if pre_zkey == 0 & zkey == 1 {
		if playing_f == 1 {
			mci "status bgm position"
			bgm_position = stat
			mci "stop bgm"
			playing_f = 0
		} else {
			mci "play bgm from " + bgm_position
			playing_f = 1
		}
	}
	goto *Main_Loop
	
	;キー入力
*Input_Key
	pre_zkey = zkey
	getkey zkey, 90
	return

 playing_fは曲が再生中かどうかのフラグで、再生中なら1、そうでないなら0を入れます。

 3.音楽のループ再生

 本講座のサンプル・ゲームでは扱いませんが、音楽をループ再生する方法を説明します。