Задать вопрос

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;
	}
});

Движение делается при помощи таймера. Так вот, как сделать так, чтобы движении в одну сторону блокировался обработчик противоположной?
Надеюсь, информации достаточно :)
  • Вопрос задан
  • 2718 просмотров
Подписаться 5 Оценить 3 комментария
Решения вопроса 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()
Ответ написан
Комментировать
Anonym
@Anonym
Программирую немного )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@pigah
флаги добавте
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы