Я пишу простую игру в JavaScript, который уже обрабатывает основной ввод с клавиатуры, как так:Как справиться с событиями в главном игровом цикле?
var input = {};
document.onkeydown = function(e) {
input[e.keyCode] = true;
}
document.onkeyup = function(e) {
input[e.keyCode] = false;
}
while (!done) {
handleInput(input);
update();
render();
}
Теперь мне нужна игра для обработки ключевых комбо (например, CTRL + X, например). Я хотел был бы принять такие комбо на keyup
только.
EDIT: Клавиши-модификаторы не нужно входить в то же время, что и «основная» клавиша. /EDIT
два возможных решения, которые приходят в мой ум:
- обнажая массив, содержащий список
keyup
событий (объект с «основными» клавиш-модификаторов плюс). ФункцияhandleInput
будет отвечать за слив очереди при каждом ее опросе - отслеживание возможных комбинаций клавиш внутри
handleInput
(просмотр удерживаемых клавиш модификатора) и запуск комбинированного режима, когда «основная» клавиша поднимается (я фактически не нравится это так)
Не могли бы вы предложить мне элегантный способ продлить текущую функциональность?
В любом случае, хороший вопрос! – PDKnight