2016-09-23 2 views
0

Мне интересно, как установить функцию с JS. Я делаю змеиную игру и создал движение до сих пор. Через кнопки я могу перемещаться по самой змее. Однако, если я нажимаю то же самое, но несколько раз подряд, увеличивается скорость змеи из-за SpeedX + = 5; функция выполняется.JS, если кнопка была нажата, не удалось щелкнуть еще раз, пока не произойдет событие

Мне интересно, как предотвратить это. Я думал о событии или функции, которая предотвращает нажатие одного и того же направления более одного раза подряд до тех пор, пока не будет изменено направление. Есть ли у вас какие-либо идеи?

+0

Используйте флаг типа 'var clicked = true'; и проверить событие клика, если 'clicked' уже установлено в true и функция выхода, если это так. Сбросьте флаг 'clicked' в соответствующем событии. – Tyr

+1

Почему вы увеличиваете переменные скорости SpeedX + = 5, не могли бы вы просто установить его на «SpeedX = 5», тогда у вас не будет никакого нежелательного ускорения. – synthet1c

+0

@ synthet1c Возможно, кнопка должна увеличить скорость, но вам нужно делать другие вещи между ними. – Barmar

ответ

0

Я бы просто отключил кнопку, установив diabled в true после того, как она была нажата. После этого просто повторно включите другие кнопки. Вот минимальный пример: https://jsfiddle.net/61q8kucr/.

Смежные вопросы