переименовать
This commit is contained in:
69
200.ввод.js
Normal file
69
200.ввод.js
Normal file
@@ -0,0 +1,69 @@
|
||||
мир.ввод = {
|
||||
клавиши: {},
|
||||
задано: {},
|
||||
};
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
мир.ключники.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(клавиша) &&
|
||||
задано.действие
|
||||
) {
|
||||
мир.действия.исполнить(задано.действие);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user