Левая клавиша со стрелкой включает коды клавиш 37 и 39
Я пытаюсь запрограммировать простую программу понг, которая использует клавиши со стрелками для навигации по веслу игрока. Мне нужно проверить мгновенные коды клавиш, поэтому я создал отдельный файл js для анализа событий onkeydown и onkeyup как логических значений для нужных мне кодов клавиш. Однако, когда я набираю стрелку влево, он включает коды клавиш 37 и 39 вместе. Это не работает для правой стрелки, но у меня было это прежде, чем перепутать пробел как клавишу со стрелкой. Код в основном выглядит так:
var KeyPressed=
{
Left:false,
Right:false,
...
};
window.onkeydown =function(e) {
e = e || window.event;
var getKey = e.keyCode ? e.keyCode:e.charCode;
switch (getKey) {
case 37: KeyPressed.Left=true;
case 39: KeyPressed.Right=true;
...
}
};
window.onkeyup = function(e){
e = e || window.event;
var getKey = e.keyCode ? e.keyCode:e.charCode;
switch (getKey){
case 37: KeyPressed.Left=false;
case 39: KeyPressed.Right=false;
...
}
};
1 ответ
Похоже, вы не сбрасываете левый / правый логический статус за одно нажатие. Так что вы должны, вероятно, onkeyup
установите оба на false независимо.