0

数日前に JavaScript の学習を開始し、codeacadmey の作業を行って、簡単なゲームを作ろうと考えました。

だから私はあなたが画像のペアを見つけなければならない記憶ゲームを思いついた.

それはすべて機能しており、スコアシステムを導入しましたが、カードが選択されてから別のチョーシーを許可するまでに発生する遅延が妨げになっていると言う人が何人かいて、そのパフォーマンスを改善する方法がわかりません.

これは、遅延の原因と思われるコードの一部です。同じ結果を生成するためのより良い方法はありますか?

function check() {

    clearInterval(tid);

        if(people[secondchocie] === people[firstchocie]) {
            cntr++;

            (cntr === numOfMatches) {

                stop();

                score = checkScore(amountGoes); 


                $('#gameFinished').append('<p>Well done, you managed to complete the game your score is <span>' + score + '</span></p>');

                }
                turns = 0;
                return;


                } else {
                document.images[firstchocie + numOfImages].src = backcard;
                document.images[secondchocie + numOfImages].src = backcard;
                turns = 0;
                return;

                }

        }
4

1 に答える 1

0

コメントを作成できないので、これを回答に入れます。

lukas.pukenisには同意しますが...

イメージがプリロードされていない場合、イメージの変更に時間がかかることがあります。これをテストするには: ゲームを開始する前に、それらをページの別の場所に (つまり、IMG タグで) 追加して、ブラウザーのキャッシュに入れてみます。

次に、それらがキャッシュにあることを確認します。

編集:

私は最近これを使用しました:

var cache = [];
function preLoadImages(arrImg)
    {
    var args_len = arrImg.length;
    for (var i = args_len; i--;)
        {
        var cacheImage = document.createElement('img');
        cacheImage.src = arrImg[i];
        cache.push(cacheImage);
        }
    }
preLoadImages(['images/img1.png','images/img2.png','images/img3.png',]);

必要なすべての画像を JavaScript 配列に追加できます。

簡単な調査:) 次のことができます: ページが php によって生成されている場合、php に images ディレクトリ全体を読み取らせ、ページ内のファイル名を JavaScript コードとして書き込むことができます。または、画像へのすべてのパスを返し、プリロード関数にコールバックとして送信する ajax リクエストを作成することもできます。

于 2013-01-31T12:05:09.380 に答える