|
|
@@ -5,10 +5,36 @@ |
|
|
|
ширина: 40, |
|
|
|
высота: 20, |
|
|
|
цвет: "#ff0000", |
|
|
|
статика: true, |
|
|
|
}, |
|
|
|
задано: {}, |
|
|
|
тела: {}, |
|
|
|
div: {}, |
|
|
|
обновить: function() { |
|
|
|
for (var имя in мир.платформы.тела) |
|
|
|
{ |
|
|
|
var тело = мир.платформы.тела[имя]; |
|
|
|
var div = мир.платформы.div[имя]; |
|
|
|
let x = тело.bounds.min.x; |
|
|
|
let y = тело.bounds.min.y; |
|
|
|
let угол = тело.angle * (180 / Math.PI); |
|
|
|
//div.style.transform = `translate(${x}px, ${y}px) rotate(${угол}deg)`; |
|
|
|
div.style.transform = `rotate(${угол}deg)`; |
|
|
|
div.style.left = `${x}px`; |
|
|
|
div.style.top = `${y}px`; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var задано = мир.платформы.задано[имя]; |
|
|
|
var умолчание = мир.платформы.умолчание; |
|
|
|
var ширина = задано["ширина"] ? задано["ширина"] : умолчание["ширина"]; |
|
|
|
var высота = задано["высота"] ? задано["высота"] : умолчание["высота"]; |
|
|
|
|
|
|
|
div.style.transformOrigin = `${ширина / 2}px ${высота / 2}px`; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -21,19 +47,6 @@ |
|
|
|
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 мир.платформы.задано)) |
|
|
|
{ |
|
|
@@ -52,16 +65,49 @@ console.debug("задано", мир.платформы.задано[имя]); |
|
|
|
// Пересоздать физическое тело. |
|
|
|
var задано = мир.платформы.задано[имя]; |
|
|
|
var умолчание = мир.платформы.умолчание; |
|
|
|
|
|
|
|
var ширина = задано["ширина"] ? задано["ширина"] : умолчание["ширина"]; |
|
|
|
var высота = задано["высота"] ? задано["высота"] : умолчание["высота"]; |
|
|
|
|
|
|
|
var тело = Matter.Bodies.rectangle( |
|
|
|
задано["x"] ? задано["x"] : умолчание["x"], |
|
|
|
задано["y"] ? задано["y"] : умолчание["y"], |
|
|
|
задано["ширина"] ? задано["ширина"] : умолчание["ширина"], |
|
|
|
задано["высота"] ? задано["высота"] : умолчание["высота"], |
|
|
|
ширина, |
|
|
|
высота, |
|
|
|
{ |
|
|
|
isStatic: true, |
|
|
|
isStatic: ("статика" in задано) ? задано["статика"] : умолчание["статика"], |
|
|
|
} |
|
|
|
); |
|
|
|
console.debug("создать тело", тело); |
|
|
|
Matter.Composite.add(мир.физика.движок.world, тело); |
|
|
|
мир.платформы.тела[имя] = тело; |
|
|
|
|
|
|
|
// Создать div. |
|
|
|
if (!(имя in мир.платформы.div)) |
|
|
|
{ |
|
|
|
var элемент = document.createElement("div"); |
|
|
|
элемент.style.position = "absolute"; |
|
|
|
элемент.style.display = "block"; |
|
|
|
элемент.style.backgroundColor = умолчание["цвет"]; |
|
|
|
элемент.style.width = `${ширина}px`; |
|
|
|
элемент.style.height = `${высота}px`; |
|
|
|
document.body.appendChild(элемент); |
|
|
|
мир.платформы.div[имя] = элемент; |
|
|
|
} |
|
|
|
|
|
|
|
// Обновить div. |
|
|
|
var элемент = мир.платформы.div[имя]; |
|
|
|
if (свойство == "ширина") |
|
|
|
{ |
|
|
|
элемент.style.width = `${ширина}px`; |
|
|
|
} |
|
|
|
else if (свойство == "высота") |
|
|
|
{ |
|
|
|
элемент.style.height = `${высота}px`; |
|
|
|
} |
|
|
|
else if (свойство == "цвет") |
|
|
|
{ |
|
|
|
элемент.style.backgroundColor = задано["цвет"]; |
|
|
|
} |
|
|
|
|
|
|
|
}); |