enchant.jsでのBGMの再生の方法

enchantjs講座

今回はenchant.jsでのBGMの再生についてです。基本的には以前紹介した効果音の鳴らし方と同様に

で再生します。しかし、上記の方法では1回最後まで再生するとそこで音楽再生が終わってしまいます。ゲームのBGMなのだから自動でループ再生してくれないと困りますねよね。

ってことでBGMのループ再生を可能にしてくれる方法がこちら。

詳しいことはわからないのですが、srcというプロパティがスマホにはあってPCには無いようなので処理を変える必要があります。

srcプロパティを持っているスマホでは

この一行を再生時に書いておくだけで自動でループ再生してくれます。問題はPCです。

PCではメインループの中にplay()メソッドを書いておく必要があります。ただし、直接メソッドを書いてしまうとトラブルを引き起こします(演奏停止したいけどplay()メソッドのせいで停止できない、とか)。

なので演奏状態を管理するフラグを用意して再生中のみにループ再生してくれるようにしました。

名前もloopにして何をしてる処理か一目瞭然です(´∀`)

あと、stop()メソッドなんですが、iPhoneでは演奏していない状態でstop()メソッドを実行するとエラーが出て止まってしまいます。それを避けるためにちょっと面倒臭いことになっています(^^;)

2件のコメント

  1. 音の再生でうまくいかなくて、そういうことだったのですね、すごく参考になりました。ありがとうございました。
    (秘密警察ぎゃぼりん、すごく面白いですね)

    1. お役に立ててうれしいです(*´ω`)
      息子さんとゲーム作ってらっしゃるんですね。息子さんの将来に期待してます(*´ω`)

コメントを残す

メールアドレスが公開されることはありません。