diff --git a/180.ввод.js b/180.ввод.js new file mode 100644 index 0000000..fc06b43 --- /dev/null +++ b/180.ввод.js @@ -0,0 +1,29 @@ +мир.ввод = { + клавиши: {}, +}; + + +// // // // + + +window.addEventListener("keydown", function(o) { + мир.ввод.обработатьКлавишу(o.key, true); +}); +window.addEventListener("keyup", function(o) { + мир.ввод.обработатьКлавишу(o.key, false); +}); + + +// // // // + + +мир.ввод.обработатьКлавишу = function(клавиша, нажата) +{ + // Исключаем повторы. + if (мир.ввод.клавиши[клавиша] == нажата) + { + return; + } + + мир.ввод.клавиши[клавиша] = нажата; +}; diff --git a/200.ввод.js b/200.ввод.js deleted file mode 100644 index 74ca7de..0000000 --- a/200.ввод.js +++ /dev/null @@ -1,69 +0,0 @@ -мир.ввод = { - клавиши: {}, - задано: {}, -}; - -// // // // - - -мир.ключники.push(function(ключ, путь, значение){ - if (!ключ.startsWith("ввод")) - { - return; - } - - var номер = путь[1]; - - if (!(номер in мир.ввод.задано)) - { - мир.ввод.задано[номер] = {}; - } - - var свойство = путь.slice(2).join("."); - мир.ввод.задано[номер][свойство] = значение; -}); - - -// // // // - - -window.addEventListener("keydown", function(o) { - мир.ввод.обработатьКлавишу(o.key, true); -}); -window.addEventListener("keyup", function(o) { - мир.ввод.обработатьКлавишу(o.key, false); -}); - - -// // // // - - -мир.ввод.обработатьКлавишу = function(клавиша, нажата) -{ - // Исключаем повторы. - if (мир.ввод.клавиши[клавиша] == нажата) - { - return; - } - - мир.ввод.клавиши[клавиша] = нажата; - - for (var номер in мир.ввод.задано) - { - var задано = мир.ввод.задано[номер]; - var клавиши = []; - for (var элемент in задано) - { - if (элемент.startsWith("клавиши")) - { - клавиши.push(задано[элемент]); - } - } - if ( - клавиши.includes(клавиша) && - задано.действие - ) { - мир.действия.исполнить(задано.действие); - } - } -}; diff --git a/index.html b/index.html index 036880d..e13bb77 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ - +