Всем привет! Я сделал игру "змейка" на js. Все работает, но есть кое-какой баг.
Я поставил ограничение: если направление змейки
налево, нельзя нажать
направо, если
вверх, тогда нельзя нажать
вниз и т.д., то есть, нельзя идти в противоположною сторону. Это работает, но если резко нажать две клавиши, то змейка пойдет назад. Например, направление змейки вверх, а я нажимаю
влево и
сразу вниз. Змейка идет вниз и умирает из-за столкновения с хвостом.
Использую элементарный keydown:
let dir;
canvas.onkeydown = function(event) {
if(event.key == 'ArrowLeft' && dir != "r"){
dir = "l";
}
else if(event.key == 'ArrowRight' && dir != "l"){
dir = "r";
}
else if(event.key == 'ArrowUp' && dir != "d"){
dir = "u";
}
else if(event.key == 'ArrowDown' && dir != "u"){
dir = "d";
}
}
Dir отслеживается постоянно.
P.S. если надо, могу выслать весь проект