enchant.jsのループBGM再生がブラウザによって動作が異なる問題を解決する。作っちゃうおじさん制作記録ブラウザゲーム制作や暇つぶしに眺められる記事を書いています。フォローする作っちゃうおじさんの寝床ホームゲーム制作enchant.jsのループBGM再生がブラウザによって動作が異なる問題を解決する。ゲーム制作enchant.jsでブラウザゲームを作るといつもサウンドで躓きます。GoogleChromeだと動くのにIEだと止まるやん!原因究明のために、F12キー押してデバック見てみると、大抵サウンド部分でエラーを検出していたりします。その中でも一番面倒だったループBGM再生を、どんな環境でも再生できる形でクラス化したのでお使いください。動作原理から説明します。実はブラウザによってループ再生方法が変わるenchant.jsにおける音再生ですが、ブラウザによって二通りの実装方法があります。ちなみに、話は逸れますが、iOSで音を鳴らす際は以下のコードを上の方に貼ってください。};これのどちらかで再生ができます。(1)が可能なブラウザが(2)を実行すると、音再生が毎フレームごとに実行されてしまいますし、(2)が可能なブラウザが(1)を実行すると、エラーが出てしまいます。そこで、Sound.srcが存在するか否かで(1)か(2)のどちらを使用するか分けられるようにします。その処理を加えたクラスが以下のコードです。Sound.srcがあるなら、ループ再生フラグをtrueにする。ブラウザゲームテンプレート作りました。ブラウザゲームの技術系ブログを目指して制作したブログなのですが、いかんせん自分のプログラムを整理できていないことに気が付きました。touchmoveで画面外にドラッグすると発生する不具合解消enchant.jsにてtouchmoveイベントを使う際には気を付けないと、使いにくいUIになってしまう点があるので注意したほうがよいです。解決方法を載せました。~ゲーム制作編~シナリオ付きゲームの作り方を、実際のプログラムを用いて説明します。シナリオの作り方も別記事に説明しています。このブログで説明してもよかったのですが、qiitaの方...記事を読む写真を動かして美味そうな煮物を立体的に見せよう想像してください。写真に写ったものが立体的に飛び出てきたら、嬉しいですよね。そりゃあ嬉しいでしょう。追記)こっちにもっとわかりやすい記事を書きましたので、こちらをご参考いただけますと幸いです。ブラウザゲームテンプレート作りました。enchant.jsの音関係のエラーを対処する。コメントブラウザゲームテンプレート作りました。詳細を説明しています。AMはじめまして、BGMループクラス使わせていただきました。constructorとエラーが出てしまいます。(gameの部分はcoreに変えました。)どうすればよいでしょうか。PM目薬さんご使用の報告をくださり、ありがとうございます!もし使いづらかったり、改善点を発見しましたら、ご報告いただけましたら改善いたします。PM解決いたしました。お騒がせしてすみません。サウンドクラス使わせていただきます。AMエラーメッセージを見るとヒントがわかるかもしれません。エラーメッセージを教えていただけますか。コメントをキャンセルメールアドレスが公開されることはありません。名前メールアドレスサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。