diff --git a/00100.мир.js b/00100.мир.js index 750545a..d89e900 100644 --- a/00100.мир.js +++ b/00100.мир.js @@ -52,3 +52,29 @@ } } }; + +мир.задать = function(словарь, ключ, значение) { + var путь = ключ.split("."); + if (путь.length == 1) + { + словарь[ключ] = значение; + } + else + { + var пройти = путь.length - 1; + var вложенность = словарь; + for (var номер = 0; номер < пройти; ++номер) + { + var внутреннийКлюч = путь[номер]; +console.debug("проход номер/внутреннийКлюч", номер, внутреннийКлюч); + var внутреннийСловарь = вложенность[внутреннийКлюч]; + if (!внутреннийСловарь) + { + вложенность[внутреннийКлюч] = {}; + внутреннийСловарь = вложенность[внутреннийКлюч]; + вложенность = внутреннийСловарь; + } + + } + } +}; diff --git a/00130.объекты.js b/00130.объекты.js index 545976d..4e9e4b7 100644 --- a/00130.объекты.js +++ b/00130.объекты.js @@ -96,10 +96,13 @@ function пересоздатьТело(имя, свойство) if (путь.startsWith("физика")) { var свойство = путь.slice(7); - физика[свойство] = за[путь]; + мир.задать(физика, свойство, за[путь]); + //физика[свойство] = за[путь]; } } +console.debug("имя/физика", имя, физика); + var тело = Matter.Bodies.rectangle(x, y, ширина, высота, физика); Matter.Composite.add(мир.физика.движок.world, тело); мир.объекты.тела[имя] = тело; diff --git a/01300.пример.json.js b/01300.пример.json.js index 2621de6..3d5f171 100644 --- a/01300.пример.json.js +++ b/01300.пример.json.js @@ -21,6 +21,9 @@ физика: { isStatic: false, inertia: Infinity, + collisionFilter: { + mask: 0x0008, + }, }, }, полСлева: { @@ -31,6 +34,11 @@ background: "url(р/отладка/основа.jpg)", display: "none", }, + физика: { + collisionFilter: { + category: 0x0004, + }, + }, }, полКрышки: { x: 357,