在jquery/javascript上玩蛇游戏时按下键,蛇移动得更快
我的JavaScript代码如下所示:在jquery/javascript上玩蛇游戏时按下键,蛇移动得更快,javascript,jquery,Javascript,Jquery,我的JavaScript代码如下所示: $(document).keydown(function(event){ var move, inter; clearInterval(inter); inter = setInterval(move = function() { var dir = $(".snake").data('dir'); var snake = $('.snake'); var food = $('.foo
$(document).keydown(function(event){
var move, inter;
clearInterval(inter);
inter = setInterval(move = function() {
var dir = $(".snake").data('dir');
var snake = $('.snake');
var food = $('.food');
if(dir == 'top') {
snake.css({"top": $(".snake").position().top + 5 + "px"});
}
if(dir == 'bottom') {
snake.css({"top": $(".snake").position().top - 5 + "px"});
}
if(dir == 'left') {
snake.css({"left": $(".snake").position().left + 5 + "px"});
}
if(dir == 'right') {
snake.css({"left": $(".snake").position().left - 5 + "px"});
}
}, 1500);
if(event.which == 40) {
$(".snake").data('dir','top');
} else if(event.which == 39) {
$(".snake").data('dir','left');
} else if(event.which == 37) {
$(".snake").data('dir','right');
} else if(event.which == 38) {
$(".snake").data('dir','bottom');
};
});
当我按下其中一个箭头键时,蛇开始移动得更快,我如何才能关闭它?您可以自己测试。您的
setInterval
在eventhandler中调用。将setinterval
与共享dir变量一起移到外部。这样您就不需要clearinterval
var dir = 'bottom';
setInterval(move = function() {
var snake = $('.snake');
var food = $('.food');
if(dir == 'top') {
snake.css({"top": $(".snake").position().top + 5 + "px"});
}
if(dir == 'bottom') {
snake.css({"top": $(".snake").position().top - 5 + "px"});
}
if(dir == 'left') {
snake.css({"left": $(".snake").position().left + 5 + "px"});
}
if(dir == 'right') {
snake.css({"left": $(".snake").position().left - 5 + "px"});
}
}, 150);
$(document).keydown(function(event){
if(event.which == 40) {
dir = 'top';
} else if(event.which == 39) {
dir = 'left';
} else if(event.which == 37) {
dir = 'right';
} else if(event.which == 38) {
dir = 'bottom';
};
});
干杯,效果很好:)!我会尽快接受你的回答。以后请在你的帖子中包含所有相关代码,不要只包含JSFIDLE的链接。你的文章应该独立于任何其他资源;考虑一下如果JsFoDelDead将来会发生什么情况,以后请把所有相关的代码包含在你的帖子里,不要只包含一个链接到JSFIDLE。你的文章应该独立于任何其他资源;想想如果JsfdelDead将来会发生什么。