From 8d31c83080fb91696a70a48ced0b7d40647283e1 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: Tue, 24 Aug 2021 14:51:01 +0300 Subject: [PATCH] jump --- 360.маскиПрыжков.js | 13 +++++++++++-- 400.столкновения.js | 8 +++++++- 800.пример.json.js | 11 ++++++++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/360.маскиПрыжков.js b/360.маскиПрыжков.js index 5f9b66b..af519d0 100644 --- a/360.маскиПрыжков.js +++ b/360.маскиПрыжков.js @@ -34,15 +34,24 @@ { var з = за[имя]; var объект = з["объект"]; + var имяТела = з["тело"]; var скорость = з["скорость"]; var маскаДо = з["маски.0"]; var маскаПосле = з["маски.1"]; - if (!объект || (скорость == null) || (маскаДо == null) || (маскаПосле == null)) + if ((!объект && !имяТела) || (скорость == null) || (маскаДо == null) || (маскаПосле == null)) { continue; } - var тело = мир.объекты.тела[объект]; + var тело = null; + if (объект) + { + тело = мир.объекты.тела[объект]; + } + else if (имяТела) + { + тело = мир.тела.тела[имяТела]; + } if (!тело) { continue; diff --git a/400.столкновения.js b/400.столкновения.js index d800dc3..b2bd06d 100644 --- a/400.столкновения.js +++ b/400.столкновения.js @@ -44,7 +44,8 @@ var ст = за[имя]; var имя1 = ст["объекты.0"]; var имя2 = ст["объекты.1"]; - if (!имя1 || !имя2 || !ст.событие) + var имя2тело = ст["тела.0"]; + if (!имя1 || (!имя2 && !имя2тело) || !ст.событие) { continue; } @@ -55,6 +56,11 @@ var пара = пары[номер]; var п1 = мир.объекты.имена[пара.bodyA.id]; var п2 = мир.объекты.имена[пара.bodyB.id]; + var п2тело = мир.тела.имена[пара.bodyB.id]; + if (!п2) + { + п2 = п2тело; + } if ( !((имя1 == п1) && (имя2 == п2)) && !((имя1 == п2) && (имя2 == п1)) diff --git a/800.пример.json.js b/800.пример.json.js index 0b94da1..2e1caa7 100644 --- a/800.пример.json.js +++ b/800.пример.json.js @@ -146,6 +146,7 @@ }, }, объекты: { + /* кирпич: { x: 100, y: 350, @@ -160,6 +161,7 @@ inertia: Infinity, }, }, + */ }, игрок: { //объект: "кирпич", @@ -197,7 +199,8 @@ }, маскиПрыжков: { игрок: { - объект: "кирпич", + //объект: "кирпич", + тело: "игрок", скорость: -1, маски: [1, 1|2], }, @@ -397,7 +400,8 @@ }, столкновения: { стрелаНачало: { - объекты: ["кирпич", "сенсор"], + объекты: ["сенсор"], + тела: ["игрок"], событие: "сенсор стрелы", }, стрелаКонец: { @@ -539,7 +543,8 @@ console.debug("событие", событие); }, столкновения: { игрокПаук1: { - объекты: ["кирпич", "паук1"], + объекты: ["паук1"], + тела: ["игрок"], событие: "игрокПаук1", }, /*