Слушатели событий и холст

1

У меня есть элемент canvas, где у меня есть набор прямоугольников, и эти прямоугольники должны соответственно перемещаться на основе выбора клавиш со стрелками на клавиатуре.

index.html

<canvas id="snakeCanvas" width="400" height="350"></canvas>

Я использую прослушиватель событий "keydown" для переключения с этой логикой, у меня есть следующий фрагмент кода в файле main.js

(function () {
    document.addEventListener("DOMContentLoaded", function () {
        game.init();

        document.addEventListener("keydown", function (evnt) {
            var keyDirection = evnt.keyCode;
            if (keyDirection === "37" && direction !== 'right') {
                direction = 'left';
                console.log('test');
            } else if (keyDirection === '38' && direction !== 'down') {
                direction = 'up';
            } else if (keyDirection === '39' && direction !== 'left') {
                direction = 'right';
            } else if (keyDirection === '40' && direction !== 'up') {
                direction = 'down';
            }
        });
    });

})();

Я могу утешить значение keyCode, но после отладки я заметил, что отладчик не переходит в условную логику. Что мне не хватает?

  • 1
    Где определена ваша переменная direction ? также, если оно не имеет значения, ни одно из ваших условий не вернет true ...
  • 0
    @NewToJS У меня есть файл constants.js, в котором определены направления
Показать ещё 6 комментариев
Теги:
html5-canvas

1 ответ

0

Вам нужно использовать ==. === требует, чтобы объекты были одного типа. Однако JavaScript не работает с ==:

a=37;
b='37';
a==b //true
a===b //false

Ещё вопросы

Сообщество Overcoder
Наверх
Меню