0

キャンバス ゲームの読み込みに問題があります。

たくさんの画像、1 つの効果音、BGM があります。PCでは、すべてが非常にうまくロードされます。問題は、インターネットが遅い携帯電話にあります。画像は読み込まれますが、ゲームの開始後にサウンドと BGM がダウンロードされます。

コード例:

main = getElementById('wrapp');
bg = new Image();
bg.src = 'bg.png';

msound = new Audio('main.wav');
msound.volume = .05;
msound.load();
msound.loop = true;
msound.play();

sound = new Audio('jump.wav');
sound.volume = .20;
sound.load(); 

main.addEventListener('touchstart', function() {
     sound.play();
}

//some game functions

function Update() {
    //some functions 
}

function Start() {
    Update();
    requestAnimFrame(Start);
}

ページにすべてをロードしてからゲームを実行する方法は? たとえば、「お待ちください...」という情報があり、画像と音声が読み込まれた後、キャンバスが表示されます。

4

1 に答える 1

2

これが高速で汚れたソリューションです。

mainsound.addEventListener("canplay", function()
{
   mainsound.play();
   Start();
});

ただし、適切な解決策には以下が含まれる必要があります。

  1. メディアのロードを担当するクラスの設計
  2. すべてのメディアがロードされるのを待っています。(「$(window).load()」と「oncanplay」イベントの組み合わせを使用できます。jQuery に慣れていない場合は、Google でこのようなものを探すことができます
  3. そこからゲーム開始
于 2013-05-09T18:24:41.053 に答える