|
|
@@ -1,4 +1,4 @@ |
|
|
|
мир.платформы = { |
|
|
|
мир.объекты = { |
|
|
|
умолчание: { |
|
|
|
x: 100, |
|
|
|
y: 100, |
|
|
@@ -11,7 +11,7 @@ |
|
|
|
тела: {}, |
|
|
|
элементы: {}, |
|
|
|
свойстваТела: ["x", "y", "ширина", "высота", "статика"], |
|
|
|
обновить: обновитьПлатформы, |
|
|
|
обновить: обновитьОбъекты, |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -19,7 +19,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
мир.ключники.push(function(ключ, путь, значение){ |
|
|
|
if (!ключ.startsWith("платформы")) |
|
|
|
if (!ключ.startsWith("объекты")) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
@@ -36,16 +36,16 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
function обновитьПлатформы() |
|
|
|
function обновитьОбъекты() |
|
|
|
{ |
|
|
|
for (var имя in мир.платформы.тела) |
|
|
|
for (var имя in мир.объекты.тела) |
|
|
|
{ |
|
|
|
var тело = мир.платформы.тела[имя]; |
|
|
|
var тело = мир.объекты.тела[имя]; |
|
|
|
if (тело.isSleeping) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
var элемент = мир.платформы.элементы[имя]; |
|
|
|
var элемент = мир.объекты.элементы[имя]; |
|
|
|
let x = тело.position.x - элемент.offsetWidth / 2; |
|
|
|
let y = тело.position.y - элемент.offsetHeight / 2; |
|
|
|
let угол = тело.angle; |
|
|
@@ -55,29 +55,29 @@ function обновитьПлатформы() |
|
|
|
|
|
|
|
function сохранитьЗаданноеЗначение(имя, свойство, значение) |
|
|
|
{ |
|
|
|
if (!(имя in мир.платформы.задано)) |
|
|
|
if (!(имя in мир.объекты.задано)) |
|
|
|
{ |
|
|
|
мир.платформы.задано[имя] = {}; |
|
|
|
мир.объекты.задано[имя] = {}; |
|
|
|
} |
|
|
|
мир.платформы.задано[имя][свойство] = значение; |
|
|
|
мир.объекты.задано[имя][свойство] = значение; |
|
|
|
} |
|
|
|
|
|
|
|
function пересоздатьТело(имя, свойство, значение) |
|
|
|
{ |
|
|
|
if (!мир.платформы.свойстваТела.includes(свойство)) |
|
|
|
if (!мир.объекты.свойстваТела.includes(свойство)) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// Удалить физическое тело. |
|
|
|
if (имя in мир.платформы.тела) |
|
|
|
if (имя in мир.объекты.тела) |
|
|
|
{ |
|
|
|
var тело = мир.платформы.тела[имя]; |
|
|
|
var тело = мир.объекты.тела[имя]; |
|
|
|
Matter.Composite.remove(мир.физика.движок.world, тело); |
|
|
|
} |
|
|
|
// Пересоздать физическое тело. |
|
|
|
var за = мир.платформы.задано[имя]; |
|
|
|
var ум = мир.платформы.умолчание; |
|
|
|
var за = мир.объекты.задано[имя]; |
|
|
|
var ум = мир.объекты.умолчание; |
|
|
|
|
|
|
|
var x = за["x"] ? за["x"] : ум["x"]; |
|
|
|
var y = за["y"] ? за["y"] : ум["y"]; |
|
|
@@ -89,24 +89,24 @@ function пересоздатьТело(имя, свойство, значени |
|
|
|
|
|
|
|
var тело = Matter.Bodies.rectangle(x, y, ширина, высота, свойства); |
|
|
|
Matter.Composite.add(мир.физика.движок.world, тело); |
|
|
|
мир.платформы.тела[имя] = тело; |
|
|
|
мир.объекты.тела[имя] = тело; |
|
|
|
} |
|
|
|
|
|
|
|
function обновитьЭлемент(имя, свойство, значение) |
|
|
|
{ |
|
|
|
if (!(имя in мир.платформы.элементы)) |
|
|
|
if (!(имя in мир.объекты.элементы)) |
|
|
|
{ |
|
|
|
var элемент = document.createElement("div"); |
|
|
|
элемент.style.position = "absolute"; |
|
|
|
элемент.style.display = "block"; |
|
|
|
элемент.style.transformOrigin = "center"; |
|
|
|
document.body.appendChild(элемент); |
|
|
|
мир.платформы.элементы[имя] = элемент; |
|
|
|
мир.объекты.элементы[имя] = элемент; |
|
|
|
} |
|
|
|
|
|
|
|
var элемент = мир.платформы.элементы[имя]; |
|
|
|
var за = мир.платформы.задано[имя]; |
|
|
|
var ум = мир.платформы.умолчание; |
|
|
|
var элемент = мир.объекты.элементы[имя]; |
|
|
|
var за = мир.объекты.задано[имя]; |
|
|
|
var ум = мир.объекты.умолчание; |
|
|
|
|
|
|
|
if (свойство == "ширина") |
|
|
|
{ |