From 9843675335e54b8e8ab60945e6ee215cb6e1957f 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, 20 Aug 2021 17:21:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 150.тела.js | 28 ++++++++++++++++++++++++++-- 667.ручноетело.js | 29 +++++------------------------ 700.пуск.js | 4 ++++ 800.пример.json.js | 3 ++- 4 files changed, 37 insertions(+), 27 deletions(-) diff --git a/150.тела.js b/150.тела.js index 2c95b33..f0f02d5 100644 --- a/150.тела.js +++ b/150.тела.js @@ -67,9 +67,9 @@ function Тела(физмир) var тело = null; // Создаём новое составное тело. - if (за.части) + if (за["части.0"]) { - параметры["parts"] = this.телаЧастей(за.части); + параметры["parts"] = this.телаЧастей(this.именаЧастей(за)); тело = Matter.Body.create(параметры); } // Создаём новое несоставное тело. @@ -88,6 +88,19 @@ function Тела(физмир) } }; + this.именаЧастей = function(за) + { + var имена = []; + for (var ключ in за) + { + if (ключ.startsWith("части")) + { + имена.push(за[ключ]); + } + } + return имена; + }; + this.телаЧастей = function(имена) { var тела = []; @@ -100,6 +113,17 @@ function Тела(физмир) return тела; }; + this.отладить = function() + { + console.debug("Тела.отладить. НАЧАЛО"); + for (var имя in this.тела) + { + var тело = this.тела[имя]; + console.debug("тело имя/id/позиция:", имя, тело.id, тело.position); + } + console.debug("Тела.отладить. КОНЕЦ"); + }; + // Конструктор. this.создать(); } diff --git a/667.ручноетело.js b/667.ручноетело.js index af36ef3..e2bb6f7 100644 --- a/667.ручноетело.js +++ b/667.ручноетело.js @@ -1,27 +1,6 @@ -function РучноеТело(события) { - this.создать = function() { - //события.подписать(this); - }; - - /* - this.обработатьСобытие = function(событие) { - if (событие != "игрок начал прыжок") - { - return; - } - события.отписать(this); - this.настроить(); - }; - */ - +function РучноеТело() { this.настроить = function() { - /* - if (!мир.физика.движок) - { - return; - } - */ if (this.настроено) { return; @@ -86,6 +65,8 @@ function РучноеТело(события) { мир.синхронизироватьЭлементТело(this.элемент2, this.тело2); }; - // Конструктор. - this.создать(); + this.отладить = function() + { + console.debug("РТ.отладить. позиции тело/тело1/тело2:", this.тело.position, this.тело1.position, this.тело2.position); + }; } diff --git a/700.пуск.js b/700.пуск.js index 955b58f..ceb920b 100644 --- a/700.пуск.js +++ b/700.пуск.js @@ -12,6 +12,8 @@ function Пуск() мир.звуки = new Звуки(мир.ключники, мир.события); мир.движение = new Движение(мир.ключники); + /**/мир.рт = new РучноеТело(); + this.настроитьОбработкуКлючей(); this.обновить(); }; @@ -46,6 +48,8 @@ function Пуск() requestAnimationFrame(function() { тут.обновить(); }); + + /**/мир.рт.обновить(); }; } diff --git a/800.пример.json.js b/800.пример.json.js index 6422f6c..a68b8bf 100644 --- a/800.пример.json.js +++ b/800.пример.json.js @@ -196,8 +196,9 @@ скорость: 0.1, }, сенсорИгрока: { - тело: "игрок", + тело: "сенсорИгрока", изображение: "изоСенсорИгрока", + смещение: [-35, 35], }, }, маскиПрыжков: {