Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие по нажатии двух клавиш клавиатуры. (https://javascript.ru/forum/events/1036-sobytie-po-nazhatii-dvukh-klavish-klaviatury.html)

Дмитрий_Skilltek 04.01.2017 08:52

Отследить нажатие любых клавиш одновременно , можно даже сто отследить вместе)))

keys={ //кей коды клавиш
w:87,
a:65,
s:83,
d:68
}
key={}
onkeydown=function(e){
key[e.keyCode]=true;
}
onkeyup=function(e){
key[e.keyCode]=false;
}
setInterval(function(){
if(key[keys.w] && key[keys.a] && key[keys.d]){ //если нажата клавиша w , a и d
alert("Сработало!!!");
}
},1)

но после алерта нужно обновлять клавиши , а то отпускание клавиши не отследится ...

keys={ //кей коды клавиш
w:87,
a:65,
s:83,
d:68
}
key={}
onkeydown=function(e){
key[e.keyCode]=true;
}
onkeyup=function(e){
key[e.keyCode]=false;
}
setInterval(function(){
if(key[keys.w] && key[keys.a] && key[keys.d]){ //если нажата клавиша w , a и d
key.w=key.a=key.d=false;
alert("Сработало!!!");
}
},1)

Дмитрий_Skilltek 08.01.2017 14:11

Цитата:

Сообщение от murloc knight (Сообщение 413558)
пожалуйста помогите я делаю игру и мне надо чтоб 2 игрока ходили одновременно но при зажатии 2 клавиш считываитса только нажатие 1 клавиши и ходит только 1 игрок

вопрос :
как сделать так чтоб при зажатии 2 клавиш 2 функции выполнялись одновременно ? :help:

javascript:
key={}
onkeydown=function(e){
key[e.keyCode]= true; //клавиша которая нажата равна true
}
onkeyup=function(e){
key[e.keyCode]= false; // клавиша которая отпущена равна false
}


Проверка
if(key[87]){
// W - нажата
}

Но этот код записывает ключи клавиш(W-87) , чтобы провенить K-узнай её ключ :
onkeydown=function(e){
alert(e.keyCode); //чтоб узнать ключ
}


Часовой пояс GMT +3, время: 20:39.