Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何提高my js游戏的性能_Javascript_Performance - Fatal编程技术网

Javascript 如何提高my js游戏的性能

Javascript 如何提高my js游戏的性能,javascript,performance,Javascript,Performance,几天前我开始学习javascript,并完成了codeacadmey的工作,我想我会尝试制作一个简单的游戏 所以我想出了一个记忆游戏,你必须找到成对的图像 这一切都在起作用,我有一个评分系统,但有几个人说,一旦选择了另一张巧克力卡,就会出现延迟,这阻碍了他们,我想不出如何提高表现 这里有一段代码我认为是造成延迟的原因,有没有更好的方法来产生相同的结果,在我还没熟悉这一切之前,很抱歉 function check() { clearInterval(tid); if(p

几天前我开始学习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;

                }

        }
函数检查(){
净空时间间隔(tid);
如果(人[第二个巧克力]==人[第一个巧克力]){
cntr++;
(cntr==numOfMatches){
停止();
分数=检查分数(数量);
$(“#gameFinished”)。追加(“做得好,您成功完成了游戏您的分数为“+score+”

”); } 匝数=0; 返回; }否则{ document.images[firstchocie+numOfImages].src=backcard; document.images[secondchocie+numOfImages].src=backcard; 匝数=0; 返回; } }
我无法创建注释,因此我将把它放在回答中

虽然我同意卢卡斯·普肯尼斯的观点

如果未预加载图像,则更改图像可能需要一些时间。要测试这一点:在开始游戏之前,尝试将它们添加到页面中的其他位置(即使用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读取整个图像目录,并将文件名作为javascript代码写入页面中。
或者您可以创建一个ajax请求,它返回图像的所有路径,并将它们作为回调发送到预加载函数。

转到jsfiddle.net,在那里创建您的游戏,然后给我们一个链接。你的代码似乎有点奇怪。例如(ctr==numOfMatches)或stop()函数。请提供所有的代码,人们会很快帮助您:)此代码不会导致延迟。大部分在正常的游戏过程中不会执行(仅在游戏结束时),其余的只是
clearTimeout
(应该很快)一个属性查找和比较(假设没有getter的话,应该非常快)。如果你演示了如何预加载图像,你可以将此作为一个答案;-)非常感谢,很抱歉,我下次会用fiddle来布置代码