From 21a892188c3f6bb9c555d088f07a430224865d0d 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: Thu, 12 Aug 2021 15:17:14 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B5=D0=BD=D1=81=D0=BE=D1=80=20=D0=B8?= =?UTF-8?q?=D0=B3=D1=80=D0=BE=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D1=82=D0=B0?= =?UTF-8?q?=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 160.объекты.js | 4 ++++ 400.столкновения.js | 1 - 667.ручноетело.js | 17 ++++++++++--- 800.пример.json.js | 42 ++++++++++++++++----------------- 4 files changed, 39 insertions(+), 25 deletions(-) diff --git a/160.объекты.js b/160.объекты.js index 50c88fa..b456e7c 100644 --- a/160.объекты.js +++ b/160.объекты.js @@ -50,6 +50,10 @@ { var тело = мир.объекты.тела[имя]; var элемент = мир.объекты.элементы[имя]; + if (!тело || !элемент) + { + continue; + } var засинхрили = мир.синхронизироватьЭлементТело(элемент, тело); // Учесть значения transform из JSON-JS. diff --git a/400.столкновения.js b/400.столкновения.js index 45acaf6..d800dc3 100644 --- a/400.столкновения.js +++ b/400.столкновения.js @@ -55,7 +55,6 @@ var пара = пары[номер]; var п1 = мир.объекты.имена[пара.bodyA.id]; var п2 = мир.объекты.имена[пара.bodyB.id]; - if ( !((имя1 == п1) && (имя2 == п2)) && !((имя1 == п2) && (имя2 == п1)) diff --git a/667.ручноетело.js b/667.ручноетело.js index d67f28c..af36ef3 100644 --- a/667.ручноетело.js +++ b/667.ручноетело.js @@ -30,7 +30,6 @@ function РучноеТело(события) { // 1. this.тело1 = Matter.Bodies.rectangle(125, 300, 40, 40, { isSensor: true }); - //Matter.Composite.add(мир.физика.движок.world, this.тело1); this.элемент1 = document.createElement("div"); document.getElementById("корень").appendChild(this.элемент1); @@ -43,8 +42,7 @@ function РучноеТело(события) { this.элемент1.style.setProperty("z-index", "100"); // 2. - this.тело2 = Matter.Bodies.rectangle(55, 300, 40, 40, {}); - //Matter.Composite.add(мир.физика.движок.world, this.тело2); + this.тело2 = Matter.Bodies.rectangle(55, 300, 40, 40, { inertia: Infinity }); this.элемент2 = document.createElement("div"); document.getElementById("корень").appendChild(this.элемент2); @@ -56,12 +54,25 @@ function РучноеТело(события) { this.элемент2.style.setProperty("background", "url(р/отладка/основа.jpg)"); this.элемент2.style.setProperty("z-index", "100"); + /* + Matter.Composite.add(мир.физика.движок.world, this.тело1); + Matter.Composite.add(мир.физика.движок.world, this.тело2); + мир.объекты.тела["рт"] = this.тело2; + this.тело = this.тело2; + */ + // Compound. this.тело = Matter.Body.create({ parts: [this.тело1, this.тело2], inertia: Infinity, }); Matter.Composite.add(мир.физика.движок.world, this.тело); + мир.объекты.тела["рт"] = this.тело; + + мир.объекты.тела["рт1"] = this.тело1; + мир.объекты.имена[this.тело1.id] = "рт1"; + мир.объекты.тела["рт2"] = this.тело2; + мир.объекты.имена[this.тело2.id] = "рт2"; }; this.обновить = function() diff --git a/800.пример.json.js b/800.пример.json.js index 20becfa..bbad794 100644 --- a/800.пример.json.js +++ b/800.пример.json.js @@ -115,48 +115,36 @@ inertia: Infinity, }, }, - /* - проверка: { - x: 1270, - y: 350, - высота: 40, - ширина: 40, - вид: { - background: "url(р/отладка/основа.jpg)", - }, - физика: { - isStatic: false, - inertia: Infinity, - }, - }, - */ }, игрок: { - объект: "кирпич", + объект: "рт", + //объект: "кирпич", скорость: [5, 12.5], клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"], }, - /* слежение: { + /* колобок: { объект: "кирпич", изображение: "колобок", смещение: [-35, -60], скорость: 1, }, + */ камера: { - объект: "кирпич", + объект: "рт", + //объект: "кирпич", скорость: 0.1, }, }, маскиПрыжков: { игрок: { - объект: "кирпич", + объект: "рт", + //объект: "кирпич", скорость: -1, маски: [1, 1|2], }, }, - */ звуки: { прыжокИгрока: { события: ["игрок начал прыжок"], @@ -459,7 +447,7 @@ function ПодкидываниеСтрелы() { function ОтладкаСобытий() { this.обработатьСобытие = function(событие) { - if (событие == "игрокПаук1") + if (событие.startsWith("игрокПаук")) { console.debug("событие", событие); } @@ -497,6 +485,18 @@ console.debug("событие", событие); объекты: ["кирпич", "паук1"], событие: "игрокПаук1", }, + проверкаСенсораИгрокаРТ: { + объекты: ["рт", "паук1"], + событие: "игрокПаукРТ", + }, + проверкаСенсораИгрокаРТ1: { + объекты: ["рт1", "паук1"], + событие: "игрокПаукРТ1", + }, + проверкаСенсораИгрокаРТ2: { + объекты: ["рт2", "паук1"], + событие: "игрокПаукРТ2", + }, }, движение: { паук1: {