From f19ce5696996b90b52c1e618eeac346bdb4540d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Wed, 23 Jun 2021 11:34:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D1=87=D1=82=D0=B8=20=D0=B4=D0=B2?= =?UTF-8?q?=D0=B8=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 00120.физика.js | 2 +- 00135.действия.js | 30 ++++++++++++++++++++++++++++-- 00140.клавиши.js | 14 ++++++++++---- 01300.пример.json.js | 4 +++- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/00120.физика.js b/00120.физика.js index 3ab4556..d810211 100644 --- a/00120.физика.js +++ b/00120.физика.js @@ -1,7 +1,7 @@ мир.физика = { движок: null, настройки: { - enableSleeping: true, + enableSleeping: false, }, создать: function() { мир.физика.движок = Matter.Engine.create(мир.физика.настройки); diff --git a/00135.действия.js b/00135.действия.js index 105927b..6d3cdcf 100644 --- a/00135.действия.js +++ b/00135.действия.js @@ -1,5 +1,6 @@ мир.действия = { задано: {}, + исполнить: исполнитьДействие, }; @@ -21,6 +22,31 @@ var свойство = путь.slice(2).join("."); мир.действия.задано[имя][свойство] = значение; - -console.debug("действия путь, имя/свойство/значение", путь, имя, свойство, значение); }); + + +// // // // + +function исполнитьДействие(имя) +{ + var действие = мир.действия.задано[имя]; + if (!действие) + { + return; + } + var объект = мир.действия.задано[имя]["объект"]; + var скоростьX = мир.действия.задано[имя]["скорость.0"]; + var скоростьY = мир.действия.задано[имя]["скорость.1"]; + if ( + объект && + (скоростьX != null) && + (скоростьY != null) + ) { +console.debug("исполнить действие", имя, объект, скоростьX, скоростьY); + var скорость = { + x: скоростьX, + y: скоростьY, + }; + Matter.Body.setVelocity(мир.объекты.тела[объект], скорость); + } +}; diff --git a/00140.клавиши.js b/00140.клавиши.js index be61648..bf6b32d 100644 --- a/00140.клавиши.js +++ b/00140.клавиши.js @@ -1,11 +1,18 @@ мир.клавиши = { + действия: {}, }; window.addEventListener("keydown", function(o) { -console.debug("keydown", o); +//console.debug("keydown", o); + var действие = мир.клавиши.действия[o.key]; + if (действие) + { + мир.действия.исполнить(действие); + } }); + window.addEventListener("keyup", function(o) { -console.debug("keyup", o); +//console.debug("keyup", o); }); @@ -19,8 +26,7 @@ console.debug("keyup", o); } var имя = путь[1]; - -console.debug("клавиша/действие", имя, значение); + мир.клавиши.действия[имя] = значение; }); diff --git a/01300.пример.json.js b/01300.пример.json.js index cd8414a..0f9057b 100644 --- a/01300.пример.json.js +++ b/01300.пример.json.js @@ -28,13 +28,15 @@ действия: { колобокВлево: { объект: "колобок", - скорость: [-10, 0], + скорость: [-2, 0], }, колобокВправо: { объект: "колобок", + скорость: [2, 0], }, колобокВверх: { объект: "колобок", + скорость: [0, -5], }, }, });