1

我再次访问您的丰富知识:P

我正在使用 jQuery 开发一个小而简单的游戏(就像 jQuery 的练习一样)。我试图阻止一个错误似乎使运动在第一步时结结巴巴。要复制它,只需按住一个方向。它口吃一次,然后平稳地移动。

我正在使用的代码是:

$(document).keydown(function(e) {
switch (e.which) { 
case 37:
    $('#move').animate({
        left: '-=2'
    },1); //left arrow key
    break;
case 38:
    $('#move').stop().animate({
        top: '-=20' 
    }).animate({
            top: '+=20'        
    }); //up arrow key (jump)
    break;
case 39:
    $('#move').animate({
        left: '+=2'
    },1); //right arrow key 
    break;

}
});

这可能是我缺少的一个非常愚蠢的属性,但我无法弄清楚。

编辑:我在各种浏览器中尝试过,但仍然遇到同样的问题。

编辑2:我把它放在jsfiddle上,虽然它和我自己的浏览器不一样,但它应该给你一个想法:P http://jsfiddle.net/urAGB/4/

4

1 回答 1

0

这是我的解决方案。我只更改了javascript。

规避这样的问题实际上有点复杂,这解释了大规模代码。所以这里有一个演练:

  • 在按键时间和检测到按键被“按住”之间自动移动对象的功能
  • 我们在某些条件下激活和停用此功能

通过更改变量,我让您可以轻松地调整这个所谓的延迟,直到检测到按键被按下。bufferTimeout随意将所有代码放入函数中,甚至将其放入外部 javascript 文件中以方便使用。

如果它解决了您的问题,请享受:)

于 2013-04-08T02:10:05.743 回答