мир.платформы = { умолчание: { x: 100, y: 100, ширина: 40, высота: 20, цвет: "#ff0000", }, задано: {}, тела: {}, div: {}, }; мир.ключники.push(function(ключ, путь, значение){ if (!ключ.startsWith("платформы")) { return; } var имя = путь[1]; var свойство = путь[2]; // Создать div. if (!(имя in мир.платформы.div)) { var элемент = document.createElement("div"); элемент.style.position = "absolute"; элемент.style.display = "block"; элемент.style.backgroundColor = "#ff0000"; элемент.style.width = "100px"; элемент.style.height = "100px"; document.body.appendChild(элемент); мир.платформы.div[имя] = элемент; } // Сохранить заданные значения. if (!(имя in мир.платформы.задано)) { мир.платформы.задано[имя] = {}; } мир.платформы.задано[имя][свойство] = значение; console.debug("задано", мир.платформы.задано[имя]); // Удалить физическое тело. if (имя in мир.платформы.тела) { var тело = мир.платформы.тела[имя]; Matter.Composite.remove(мир.физика.движок.world, тело); } // Пересоздать физическое тело. var задано = мир.платформы.задано[имя]; var умолчание = мир.платформы.умолчание; var тело = Matter.Bodies.rectangle( задано["x"] ? задано["x"] : умолчание["x"], задано["y"] ? задано["y"] : умолчание["y"], задано["ширина"] ? задано["ширина"] : умолчание["ширина"], задано["высота"] ? задано["высота"] : умолчание["высота"], { isStatic: true, } ); console.debug("создать тело", тело); Matter.Composite.add(мир.физика.движок.world, тело); мир.платформы.тела[имя] = тело; });