diff --git a/00140.ввод.js b/00140.ввод.js index 2d618fa..3575929 100644 --- a/00140.ввод.js +++ b/00140.ввод.js @@ -1,23 +1,8 @@ мир.ввод = { - //действия: {}, + клавиши: {}, + задано: {}, }; -window.addEventListener("keydown", function(o) { -console.debug("keydown", o); - /* - var действие = мир.клавиши.действия[o.key]; - if (действие) - { - мир.действия.исполнить(действие); - } - */ -}); - -window.addEventListener("keyup", function(o) { -console.debug("keyup", o); -}); - - // // // // @@ -27,9 +12,55 @@ console.debug("keyup", o); return; } - var имя = путь[1]; + var номер = путь[1]; + + if (!(номер in мир.ввод.задано)) + { + мир.ввод.задано[номер] = {}; + } + + var свойство = путь.slice(2).join("."); + мир.ввод.задано[номер][свойство] = значение; + + console.debug("ввод", ключ, путь, значение); - //мир.клавиши.действия[имя] = значение; }); +// // // // + + +window.addEventListener("keydown", function(o) { + обработатьКлавишу(o.key, true); +}); +window.addEventListener("keyup", function(o) { + обработатьКлавишу(o.key, false); +}); + + +// // // // + + +function обработатьКлавишу(клавиша, нажата) +{ + мир.ввод.клавиши[клавиша] = нажата; + + for (var номер in мир.ввод.задано) + { + var задано = мир.ввод.задано[номер]; + var клавиши = []; + for (var элемент in задано) + { + if (элемент.startsWith("клавиши")) + { + клавиши.push(задано[элемент]); + } + } + if ( + клавиши.includes(клавиша) && + задано.действие + ) { +console.debug("исполнить действие", задано.действие, "клавиша", клавиша, "клавиши", клавиши); + } + } +} diff --git a/01300.пример.json.js b/01300.пример.json.js index 3b3afd4..602a020 100644 --- a/01300.пример.json.js +++ b/01300.пример.json.js @@ -27,17 +27,13 @@ }, ], действия: { - колобокВлево: { - объект: "колобок", - скорость: [-10, 0], - }, - колобокВправо: { - объект: "колобок", - скорость: [10, 0], - }, - колобокВверх: { - объект: "колобок", - скорость: [0, -5], + переместитьКолобка: { + функция: переместитьКолобка, }, }, }); + +function переместитьКолобка() +{ +console.debug("надо переместитьКолобка"); +}