2013-01-31 25 views
0

我已经开始在几天前学习javascript并完成codeacadmey的东西,并认为我会尝试做一个简单的游戏。如何提高性能o我的js游戏

所以我想出了记忆游戏,你必须找到对图像。

这是所有的工作,我得到了一个评分系统,但有几个人说,一旦卡被选中,让另一个巧克力阻碍他们,我不知道如何提高性能发生延迟。

这里有一段代码,我认为是造成延迟,有没有更好的方法来产生相同的结果,遗憾的是我对所有这一切都是陌生的。

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; 

       } 

     } 
+1

转到jsfiddle.net并在那里创建你的游戏,然后给我们一个链接。你的代码看起来有点奇怪。例如(ctr === numOfMatches)或stop()函数。请提供所有代码,突然人们将能够快速帮助您:) –

+0

此代码不会导致延迟。它大部分在正常游戏过程中不会被执行(只在最后),其余的只是'clearTimeout'(它应该是快速的)属性查找和比较(如果没有获取者,它应该是超快速的在方式)。 –

回答

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读取整个图像目录并将该文件名作为javascript代码写入页面。 或者您可以创建一个ajax请求,它将返回图像的所有路径并将它们作为回调函数发送到预加载函数。

+0

如果您演示如何预加载图像,您可以保留这个作为答案;-) –

+0

非常感谢你和对我下次将使用小提琴的代码布局感到抱歉 – Space87

+0

我们在这里学习和帮助;) 我希望这有帮助。 – Rembunator