From b50338f2723e4beb12b809b54defc7cb27ea2a56 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, 6 Jul 2021 15:31:22 +0300 Subject: [PATCH] jumpthrough --- 00150.игрок.js | 36 ++++++++++++++++++++++++++++-------- index.html | 6 ++++++ 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/00150.игрок.js b/00150.игрок.js index 69caef0..77912cf 100644 --- a/00150.игрок.js +++ b/00150.игрок.js @@ -1,6 +1,9 @@ мир.игрок = { задано: {}, - обновить: обновитьИгрока, + обновить: function() { + переместитьИгрока(); + задатьИгрокуМаскуСтолкновения(); + }, }; @@ -21,8 +24,14 @@ // // // // -function обновитьИгрока() +function переместитьИгрока() { + var тело = мир.объекты.тела[мир.игрок.задано.объект]; + if (!тело) + { + return; + } + var к = [ мир.игрок.задано["клавиши.0"], мир.игрок.задано["клавиши.1"], @@ -32,12 +41,6 @@ function обновитьИгрока() var вправо = (мир.ввод.клавиши[к[1]] == true); var вверх = (мир.ввод.клавиши[к[2]] == true); - var тело = мир.объекты.тела[мир.игрок.задано.объект]; - if (!тело) - { - return; - } - var скоростьГ = мир.игрок.задано["скорость.0"]; var скоростьВ = мир.игрок.задано["скорость.1"]; var скоростьY = (вверх && Math.abs(тело.velocity.y) <= 0.0000000000001) ? -скоростьВ : тело.velocity.y; @@ -54,3 +57,20 @@ function обновитьИгрока() Matter.Sleeping.set(тело, false); Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY }); } + + +// // // // + + +function задатьИгрокуМаскуСтолкновения() +{ + var тело = мир.объекты.тела[мир.игрок.задано.объект]; + if (!тело) + { + return; + } + + var маска = (тело.velocity.y < -1) ? 2 : 1; + тело.collisionFilter.mask = маска; +document.getElementById("отладка").innerHTML = `маска: ${маска}`; +} diff --git a/index.html b/index.html index 2a0b22e..1015779 100644 --- a/index.html +++ b/index.html @@ -18,11 +18,17 @@ } #корень { position: relative; + } + #отладка { + position: absolute; + right: 2em; + bottom: 2em; }
+