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 に答える