|
|
@@ -9,26 +9,19 @@ |
|
|
|
}, |
|
|
|
задано: {}, |
|
|
|
тела: {}, |
|
|
|
div: {}, |
|
|
|
transform: {}, |
|
|
|
обновить: function() { |
|
|
|
for (var имя in мир.платформы.тела) |
|
|
|
{ |
|
|
|
var тело = мир.платформы.тела[имя]; |
|
|
|
if (тело.isSleeping) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
var div = мир.платформы.div[имя]; |
|
|
|
let x = тело.position.x - div.offsetWidth / 2; |
|
|
|
let y = тело.position.y - div.offsetHeight / 2; |
|
|
|
let угол = тело.angle; |
|
|
|
div.style.transform = `translate(${x}px, ${y}px) rotate(${угол}rad)`; |
|
|
|
} |
|
|
|
}, |
|
|
|
элементы: {}, |
|
|
|
свойстваТела: ["x", "y", "ширина", "высота"], |
|
|
|
обновить: обновитьПлатформы, |
|
|
|
/* |
|
|
|
задатьФизику: задатьФизикуПлатформы, |
|
|
|
задатьDiv: задатьDivПлатформы, |
|
|
|
*/ |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
мир.ключники.push(function(ключ, путь, значение){ |
|
|
|
if (!ключ.startsWith("платформы")) |
|
|
|
{ |
|
|
@@ -74,7 +67,7 @@ console.debug("создать тело", тело); |
|
|
|
мир.платформы.тела[имя] = тело; |
|
|
|
|
|
|
|
// Создать div. |
|
|
|
if (!(имя in мир.платформы.div)) |
|
|
|
if (!(имя in мир.платформы.элементы)) |
|
|
|
{ |
|
|
|
var элемент = document.createElement("div"); |
|
|
|
элемент.style.position = "absolute"; |
|
|
@@ -84,12 +77,12 @@ console.debug("создать тело", тело); |
|
|
|
элемент.style.height = `${высота}px`; |
|
|
|
элемент.style.transformOrigin = `center`; |
|
|
|
document.body.appendChild(элемент); |
|
|
|
мир.платформы.div[имя] = элемент; |
|
|
|
мир.платформы.элементы[имя] = элемент; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// Обновить div. |
|
|
|
var элемент = мир.платформы.div[имя]; |
|
|
|
var элемент = мир.платформы.элементы[имя]; |
|
|
|
if (свойство == "ширина") |
|
|
|
{ |
|
|
|
элемент.style.width = `${ширина}px`; |
|
|
@@ -104,3 +97,25 @@ console.debug("создать тело", тело); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
function обновитьПлатформы() |
|
|
|
{ |
|
|
|
for (var имя in мир.платформы.тела) |
|
|
|
{ |
|
|
|
var тело = мир.платформы.тела[имя]; |
|
|
|
if (тело.isSleeping) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
var элемент = мир.платформы.элементы[имя]; |
|
|
|
let x = тело.position.x - элемент.offsetWidth / 2; |
|
|
|
let y = тело.position.y - элемент.offsetHeight / 2; |
|
|
|
let угол = тело.angle; |
|
|
|
элемент.style.transform = `translate(${x}px, ${y}px) rotate(${угол}rad)`; |
|
|
|
} |
|
|
|
}; |
|
|
|
|