2012年07月05日

BGM切替のテクニック

ゲーム中にBGMを切り替える場合に前の曲がフェードアウトしてから別の曲に切り替わるとクールですよね。自分の場合はこんなサブルーチンを組み込んでBGMをフェードアウト後に切り替えています。

@INIT
BGMTRK=0
@MAIN
(メイン処理)
IF LEFTTIME>200 GOTO @MAIN
IF HRYF==0 THEN BGMF=1:HRYF=1:BGMNO=13:FADETIME=2
GOSUB @BGMCHG
GOTO @MAIN

@BGMCHG
ON BGMF GOTO @BGMCHG0,@BGMCHG1,BGMCHG2
@BGMCHG0
RETURN

@BGMCHG1
BGMSTOP BGMTRK,FADETIME:BGMF=2
RETURN

@BGMCHG2
IF BGMCHK(BGMTRK)==TURE THEN RETURN
BGMPLAY BGMTRK,BGMNO:BGMF=0
RETURN

通常時はBGMFは0で@BGMCHGをコールしてもすぐRETURNするのでBGM切替は起きません。何らかの条件(サンプルの場合は残り時間が200を切った場合)にBGMFを1にしてBGM切替をします。HRYFはBGMが切り替え条件が整ったフラグとして使用しています。FADETIMEはフェード時間でBGMNOは切り替えるBGMの番号です。
このプログラムではトラック0に対して機能します。他のトラックにBGMを割り当てる場合は@INITの"BGMTRK=0"の設定を変更して下さい。
ラベル:テクニック
posted by otta777 at 09:35| Comment(0) | プチコンmkII | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。