JS — как блокировать обработчик клавиши?

Доброго времени суток!
Подскажите, пожалуйста, делаю примитивную змейку, есть обработчик события нажатия стрелок на клавиатуре, при которых начинает двигаться объект в канвасе. Выглядит это просто и примерно так:
var LEFT = 37,
      UP = 38,
      RIGHT = 39,
      DOWN = 40;

$(document).on('keydown', function(e) {
	switch (e.keyCode) {
		case LEFT:
			// двигаемся влево
		break;
		case UP:
			// двигаемся вверх
		break;
		case RIGHT:
			// двигаемся вправо
		break;
		case DOWN:
			// двигаемся вниз
		break;
	}
});

Движение делается при помощи таймера. Так вот, как сделать так, чтобы движении в одну сторону блокировался обработчик противоположной?
Надеюсь, информации достаточно :)
  • Вопрос задан
  • 2642 просмотра
Решения вопроса 2
mannaro
@mannaro Куратор тега JavaScript
Умею профессионально гуглить
Сохраняйте текущее направление и делайте проверку при нажатии клавиши.

buttons[37] = buttons[39] = 'hor'
buttons[38] = buttons[40] = 'ver'
cur = 38

onPressButton (button)
  if buttons[cur] != buttons[button]
    cur = button
    move()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы