Browse Source

ввод

master
parent
commit
47ebe996f6
3 changed files with 30 additions and 70 deletions
  1. +29
    -0
      180.ввод.js
  2. +0
    -69
      200.ввод.js
  3. +1
    -1
      index.html

+ 29
- 0
180.ввод.js View File

@@ -0,0 +1,29 @@
мир.ввод = {
клавиши: {},
};


// // // //


window.addEventListener("keydown", function(o) {
мир.ввод.обработатьКлавишу(o.key, true);
});
window.addEventListener("keyup", function(o) {
мир.ввод.обработатьКлавишу(o.key, false);
});


// // // //


мир.ввод.обработатьКлавишу = function(клавиша, нажата)
{
// Исключаем повторы.
if (мир.ввод.клавиши[клавиша] == нажата)
{
return;
}

мир.ввод.клавиши[клавиша] = нажата;
};

+ 0
- 69
200.ввод.js View File

@@ -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(клавиша) &&
задано.действие
) {
мир.действия.исполнить(задано.действие);
}
}
};

+ 1
- 1
index.html View File

@@ -34,7 +34,7 @@
<script src="120.физика.js"></script>
<script src="140.изображения.js"></script>
<script src="160.объекты.js"></script>
<script src="200.ввод.js"></script>
<script src="180.ввод.js"></script>
<script src="220.игрок.js"></script>
<script src="240.слежение.js"></script>
<script src="260.столкновения.js"></script>


Loading…
Cancel
Save