Показать сообщение отдельно
  #1 (permalink)  
Старый 01.08.2019, 23:09
Новичок на форуме
Отправить личное сообщение для Temcher Посмотреть профиль Найти все сообщения от Temcher
 
Регистрация: 13.02.2018
Сообщений: 9

Обработка нажатия двух клавиш одновременно.
Всем привет! Помогите разобраться, как изменить код, чтобы обрабатывались две нажатые клавиши одновременно. Чтобы две кнопки были независимы друг от друга.
Я так понимаю тут причина в keyCode, которая принимает только какое то одно значение. т.е при получении второго значения(скажем D) значение W удаляется. Нужен массив? пробовал по разному, не понимаю.
var mas = {
	'W':87,
	'D':68
};

window.onkeydown=function(e){
	if(e.keyCode == mas.W){
		console.log('Кнопка W нажата');
	}
	if(e.keyCode == mas.D){
		console.log('Кнопка D нажата');
	}
	window.onkeyup=function(e){
		if(e.keyCode == mas.W){
			console.log('Отжата кнопка W');
		}
		else if(e.keyCode == mas.D){
			console.log('Отжата кнопка D');
		}
	}
}


В консоле при нажатии к примеру клавиши W вижу, как она обрабатывается, но как только нажимаю D обработка W прерывается.

В дальнейшем хочу чтобы объект в canvas мог двигаться не только по вертикали и горизонтали, но и по диагонали.
Ответить с цитированием