在我的游戏中,当你在游戏中死于屏幕时,但出于某种原因,当你点击主菜单时,再次进行第一级,然后向左或向右移动它会移动他?每次你点击开始我都这样做,以便它再次重置它以防万一这可能是为什么?这是我认为可能导致这一问题的功能吗?
$('#yes').click(function() {
$("#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()
$('#startLevel1').hide();
});
链接:http://jsfiddle.net/8h7n2oca/20/ 任何事情都有帮助,谢谢
答案 0 :(得分:0)
当游戏重置时,声音就像一个事件被重新绑定到你的玩家(导致2个重复事件绑定到你的玩家)确保在游戏结束时解除所有相关事件的绑定/注意重新绑定。
感谢小提琴,我看了你的代码。当您启动游戏时,您调用函数levelOne(),在此函数内运行以下代码:
document.addEventListener('keydown', function (evt) { /* your logic */ }
此代码将keydown事件上的事件侦听器绑定到文档。在游戏结束后调用levelOne()时,此代码将再次运行。现在您有两个绑定到该文档的侦听器。因此,当您移动播放器时,代码会被触发两次。
根据GameAlchemist的建议,将您的游戏设置逻辑设置为单独的函数,以便在页面加载时运行一次,这听起来像是防止重复绑定和优化代码的好方法。