From e3228caf501a18d0513e7d296a714e45c8b44f8a 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: Fri, 9 Jul 2021 14:34:09 +0300 Subject: [PATCH] =?UTF-8?q?=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=821/?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D0=BE1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 00100.мир.js | 12 ++++++++ 00130.объекты.js | 9 +----- 00150.игрок.js | 63 +++++++++++++++++++++++++++++++------- 01300.пример.json.js | 2 +- 4 files changed, 66 insertions(+), 20 deletions(-) diff --git a/00100.мир.js b/00100.мир.js index 6252a6f..86b0f55 100644 --- a/00100.мир.js +++ b/00100.мир.js @@ -70,3 +70,15 @@ var ключ = путь[пройти]; вложенность[ключ] = значение; }; + +мир.синхронизироватьЭлементТело = function(элемент, тело) { + if (тело.isSleeping) + { + return; + } + + let x = тело.position.x - элемент.offsetWidth / 2; + let y = тело.position.y - элемент.offsetHeight / 2; + let угол = тело.angle; + элемент.style.transform = `translate(${x}px, ${y}px) rotate(${угол}rad)`; +}; diff --git a/00130.объекты.js b/00130.объекты.js index ff416a1..bf361ef 100644 --- a/00130.объекты.js +++ b/00130.объекты.js @@ -49,15 +49,8 @@ function обновитьОбъекты() for (var имя in мир.объекты.тела) { var тело = мир.объекты.тела[имя]; - if (тело.isSleeping) - { - continue; - } var элемент = мир.объекты.элементы[имя]; - let x = тело.position.x - элемент.offsetWidth / 2; - let y = тело.position.y - элемент.offsetHeight / 2; - let угол = тело.angle; - элемент.style.transform = `translate(${x}px, ${y}px) rotate(${угол}rad)`; + мир.синхронизироватьЭлементТело(элемент, тело); } } diff --git a/00150.игрок.js b/00150.игрок.js index c2d06a2..81efab9 100644 --- a/00150.игрок.js +++ b/00150.игрок.js @@ -3,8 +3,9 @@ обновить: function() { переместитьИгрока(); задатьИгрокуМаскуСтолкновения(); + обновитьРаз(); }, - соединение: null, + раз: null, }; @@ -20,7 +21,7 @@ var свойство = путь.slice(1).join("."); мир.игрок.задано[свойство] = значение; -одинРазСоздатьСоединение(); +одинРазСоздать(); }); @@ -28,15 +29,22 @@ // // // // -function одинРазСоздатьСоединение() +function одинРазСоздать() { - if (мир.игрок.соединение) + if (мир.игрок.раз) { return; } + var элемент1 = document.createElement("div"); + элемент1.style.position = "absolute"; + элемент1.style.display = "block"; + элемент1.style.transformOrigin = "center"; + элемент1.style.width = `70px`; + элемент1.style.height = `10px`; + элемент1.style.background = "url(р/отладка/основа.jpg)", + document.getElementById("корень").appendChild(элемент1); - /* var фи = { isStatic: false, inertia: Infinity, @@ -44,14 +52,33 @@ function одинРазСоздатьСоединение() mask: 1, }, }; - var игрок = Matter.Bodies.rectangle(1170, 350, 70, 10, фи); - */ + var тело1 = Matter.Bodies.rectangle(1170, 150, 70, 10, фи); + Matter.Composite.add(мир.физика.движок.world, тело1); - //Matter.Composite.add(мир.физика.движок.world, тело); + мир.игрок.раз = { + элемент1: элемент1, + тело1: тело1, + //элемент2: , + //тело2: , + } + +console.debug("создано раз"); +} + + +// // // // + + +function обновитьРаз() +{ + if (!мир.игрок.раз) + { + return; + } + мир.синхронизироватьЭлементТело(мир.игрок.раз.элемент1, мир.игрок.раз.тело1); -console.debug("создано соединение"); } @@ -60,8 +87,15 @@ console.debug("создано соединение"); function переместитьИгрока() { + +if (!мир.игрок.раз) +{ + return; +} + //var тело = мир.объекты.тела[мир.игрок.задано.объект]; - var тело = мир.объекты.тела["игрок"]; +//var тело = мир.объекты.тела["игрок"]; +var тело = мир.игрок.раз.тело1; if (!тело) { return; @@ -99,8 +133,15 @@ function переместитьИгрока() function задатьИгрокуМаскуСтолкновения() { + +if (!мир.игрок.раз) +{ + return; +} + //var тело = мир.объекты.тела[мир.игрок.задано.объект]; - var тело = мир.объекты.тела["игрок"]; +//var тело = мир.объекты.тела["игрок"]; +var тело = мир.игрок.раз.тело1; if (!тело) { return; diff --git a/01300.пример.json.js b/01300.пример.json.js index c69ef2e..c599137 100644 --- a/01300.пример.json.js +++ b/01300.пример.json.js @@ -112,7 +112,7 @@ }, }, игрок: { - объект: "", //"колобок", + объект: "колобок", скорость: [5, 13], клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"], },