diff --git a/00130.платформы.js b/00130.платформы.js index 48c411f..86bc8e4 100644 --- a/00130.платформы.js +++ b/00130.платформы.js @@ -28,32 +28,13 @@ var свойство = путь[2]; сохранитьЗаданноеЗначение(имя, свойство, значение); + пересоздатьТело(имя, свойство, значение); - // Удалить физическое тело. - if (имя in мир.платформы.тела) - { - var тело = мир.платформы.тела[имя]; - Matter.Composite.remove(мир.физика.движок.world, тело); - } - // Пересоздать физическое тело. - var задано = мир.платформы.задано[имя]; - var умолчание = мир.платформы.умолчание; - var ширина = задано["ширина"] ? задано["ширина"] : умолчание["ширина"]; - var высота = задано["высота"] ? задано["высота"] : умолчание["высота"]; - - var тело = Matter.Bodies.rectangle( - задано["x"] ? задано["x"] : умолчание["x"], - задано["y"] ? задано["y"] : умолчание["y"], - ширина, - высота, - { - isStatic: ("статика" in задано) ? задано["статика"] : умолчание["статика"], - } - ); -console.debug("создать тело", тело); - Matter.Composite.add(мир.физика.движок.world, тело); - мир.платформы.тела[имя] = тело; + var за = мир.платформы.задано[имя]; + var умолчание = мир.платформы.умолчание; + var ширина = за["ширина"] ? за["ширина"] : умолчание["ширина"]; + var высота = за["высота"] ? за["высота"] : умолчание["высота"]; // Создать div. if (!(имя in мир.платформы.элементы)) @@ -82,7 +63,7 @@ console.debug("создать тело", тело); } else if (свойство == "цвет") { - элемент.style.backgroundColor = задано["цвет"]; + элемент.style.backgroundColor = за["цвет"]; } }); @@ -118,3 +99,33 @@ function сохранитьЗаданноеЗначение(имя, свойст console.debug("задано", мир.платформы.задано[имя]); } +function пересоздатьТело(имя, свойство, значение) +{ + if (!мир.платформы.свойстваТела.includes(свойство)) + { + return; + } + + // Удалить физическое тело. + if (имя in мир.платформы.тела) + { + var тело = мир.платформы.тела[имя]; + Matter.Composite.remove(мир.физика.движок.world, тело); + } + // Пересоздать физическое тело. + var за = мир.платформы.задано[имя]; + var ум = мир.платформы.умолчание; + + var x = за["x"] ? за["x"] : ум["x"]; + var y = за["y"] ? за["y"] : ум["y"]; + var ширина = за["ширина"] ? за["ширина"] : ум["ширина"]; + var высота = за["высота"] ? за["высота"] : ум["высота"]; + var свойства = { + isStatic: ("статика" in за) ? за.статика : ум.статика, + }; + + var тело = Matter.Bodies.rectangle(x, y, ширина, высота, свойства); +console.debug("создать тело", тело); + Matter.Composite.add(мир.физика.движок.world, тело); + мир.платформы.тела[имя] = тело; +}