$(document).keydown(function(e){
var key=e.which;
//to prevent reversing, add the possible value of d which hinders the snake to go to desired direction
if(key=="37"&&d!="right"){
if(p==true){
clearInterval(game_loop);
game_loop=setInterval(paint,60);
p=false;
d="left";
}
else{
d="left";
}
}
else if(key=="38"&&d!="down"){
if(p==true){
clearInterval(game_loop);
game_loop=setInterval(paint,60);
p=false;
d="up";
}
else{
d="up";
}
}
else if(key=="39"&&d!="left"){
if(p==true){
clearInterval(game_loop);
game_loop=setInterval(paint,60);
p=false;
d="right";
}
else{
d="right";
}
}
else if(key=="40"&&d!="up"){
if(p==true){
clearInterval(game_loop);
game_loop=setInterval(paint,60);
p=false;
d="down";
}
else{
d="down";
}
}
else if(key=="32"){
if(p==false){
clearInterval(game_loop);
p=true;
}
else{
game_loop=setInterval(paint,60);
p=false;
}
}
})
このコードは、ヘビのキーダウンを定義します。問題は。2つのキーを同時に押すか、非常に速く押して離すと(おそらく他の組み合わせも可能です)、ゲームは終了します.2つのキーをすばやく押すと、自分の体への衝突をチェックする関数がtrueを返します下と左のように..
どのように修正できますか?