Ошибка в JavaScript? Отсутствие пробела при нажатии клавиш со стрелками вверх и влево - PullRequest
1 голос
/ 01 февраля 2012

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

В keyDown я установил для некоторых логических значений значение true, а для keyDown - значение false. В основном цикле я проверяю эти логические значения, чтобы персонаж мог двигаться в одном из 8 направлений и стрелять одновременно.

Все работает: Северо-Восток + Космос, Юго-Восток + Космос, Юго-Запад + Космос но Северо-Запад + Космос не работает. Событие для пробела не запускается.

 function onKeyDown(evt){

            switch(evt.keyCode){

                case up:
                pressedUp=true;
                break;

                case right:
                pressedRight = true;
                break;

                case down:
                pressedDown = true;
                break;

                case left:
                pressedLeft = true;
                break;

                case space:
                spacePressed=true;
                break;
            }

            updateCamera();
        }

        function onKeyUp(evt){

           switch(evt.keyCode){
                 case up:
                pressedUp=false;
                break;

                case right:
                pressedRight = false;
                break;

                case down:
                pressedDown = false;
                break;

                case left:
                pressedLeft = false;
                break;

                case space:
                spacePressed = false;
                break;
            }
        }

1 Ответ

1 голос
/ 18 мая 2013

Я провел несколько тестов, и у меня одинаковое поведение во всех браузерах, а также в приложениях Flash и AIR, поэтому для меня это, скорее всего, вызвано моей клавиатурой (модель: Cherry JK-0100DE).

Мой обходной путь - использовать другой ключ вместо пробела - возможно, с X или Y.

...