Javascript故障游戏

Javascript glitchy game

本文关键字:游戏 故障 Javascript      更新时间:2023-09-26

我有一个游戏,当你点击Obs时,你会在屏幕上看到一个游戏。它有一个重试按钮,它会重置它,它大部分时间都能工作,但在第三次或第四次重试后,它不会重置它。它只是把它保持在原来的位置。为什么要这样做?下面是我用于重置的代码和一个链接。谢谢

if (collides($(value), $('#player'))) {
                  $('#levelOne').stop();
                  $('#player').css('border', 'solid 1px yellow');
                  //GAME OVER SCREEN START
                  $('#GameOver').fadeIn();
                  $('#retry').click(function () {
                      $('#GameOver').fadeOut();
                      // NEW LOGIC
                      $("#levelOne").css('margin-top', '-1520px');
                      $("#player").css('border', 'solid 1px green')
                      $("#player").css('margin-left', '223px');
                      $('#levelComplete').hide();
                      $('#levelOne').animate({
                          'margin-top': '+=1520px'
                      }, speed);
                      handleCollisions()
                  });
              }

http://jsfiddle.net/38bod36e/101/

您不断在handleCollisions函数(本部分:$('#retry').click(function () {)中添加点击事件侦听器,这迟早会影响您的性能,因为创建/调用的事件数量会变得非常大。这是你需要注意的事情,以消除故障。

我把点击处理程序函数移到了外面,它运行得很好。我还禁用了每帧的控制台日志,因为它也会影响性能。

请在此处查看:http://jsfiddle.net/38bod36e/103/

如果你想要始终如一的表现,就要小心处理这样的事情。在控制台中查看事件数量如何随着原始代码中渲染的每一帧而增长:http://jsfiddle.net/38bod36e/105/