Как обработать события клавиатуры на Canvas?

Пользователь

от steve , в категории: Другие , год назад

Как обработать события клавиатуры на Canvas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от rodger.botsford , год назад

@steve 

Для обработки событий клавиатуры на Canvas можно использовать методы объекта window:

  1. Добавить обработчик события keydown, который будет вызываться каждый раз, когда пользователь нажмет клавишу на клавиатуре:
1
2
3
window.addEventListener('keydown', function(event) {
  // код обработки события
});


  1. Внутри обработчика event.keyCode позволяет получить код нажатой клавиши. Например, для клавиши "вверх" это будет код 38:
1
2
3
4
5
window.addEventListener('keydown', function(event) {
  if (event.keyCode === 38) {
    // обработка нажатия клавиши "вверх"
  }
});


  1. Для отслеживания удержания клавиши можно использовать флаги. Например, чтобы двигать объект вверх, пока пользователь удерживает клавишу "вверх", можно определить флаг isUpPressed и изменять его значение в обработчиках keydown и keyup:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
let isUpPressed = false;

window.addEventListener('keydown', function(event) {
  if (event.keyCode === 38) {
    isUpPressed = true;
  }
});

window.addEventListener('keyup', function(event) {
  if (event.keyCode === 38) {
    isUpPressed = false;
  }
});

function gameLoop() {
  if (isUpPressed) {
    // движение объекта вверх
  }
  
  // другие действия игрового цикла
  requestAnimationFrame(gameLoop);
}

gameLoop();