|
@@ -8,48 +8,53 @@ function Объекты(состояние) |
|
|
this.задано = {}; |
|
|
this.задано = {}; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
this.обновитьИзображение = function(имя) |
|
|
|
|
|
|
|
|
this.обновитьИзображение = function(имя, пр, вид) |
|
|
{ |
|
|
{ |
|
|
let имяИзо = `объекты-${имя}`; |
|
|
|
|
|
let за = this.задано[имя]; |
|
|
|
|
|
let пр = this.пр(имя); |
|
|
|
|
|
var описание = { |
|
|
|
|
|
ширина: пр[2], |
|
|
|
|
|
высота: пр[3], |
|
|
|
|
|
вид: {}, |
|
|
|
|
|
}; |
|
|
|
|
|
for (var ключ in за) |
|
|
|
|
|
{ |
|
|
|
|
|
if (ключ.startsWith("вид.")) |
|
|
|
|
|
{ |
|
|
|
|
|
var к = ключ.substring(4); |
|
|
|
|
|
var значение = за[ключ]; |
|
|
|
|
|
описание.вид[к] = значение; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
состояние.разобрать({ |
|
|
состояние.разобрать({ |
|
|
изображения: { |
|
|
изображения: { |
|
|
[имяИзо]: описание, |
|
|
|
|
|
|
|
|
[имя]: { |
|
|
|
|
|
пр: пр, |
|
|
|
|
|
вид: вид, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
this.обновитьПозициюРазмер = function(имя, пр) |
|
|
|
|
|
{ |
|
|
|
|
|
состояние.разобрать({ |
|
|
|
|
|
тела: { |
|
|
|
|
|
[имя]: { |
|
|
|
|
|
пр: пр, |
|
|
|
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}); |
|
|
}); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
this.обновитьСлежение = function(имя) |
|
|
|
|
|
|
|
|
this.обновитьСлежение = function(имя, пр) |
|
|
{ |
|
|
{ |
|
|
let имяС = `объекты-${имя}`; |
|
|
|
|
|
let пр = this.пр(имя); |
|
|
|
|
|
состояние.разобрать({ |
|
|
состояние.разобрать({ |
|
|
слежение: { |
|
|
слежение: { |
|
|
[имяС]: { |
|
|
|
|
|
изображение: имяС, |
|
|
|
|
|
тело: имяС, |
|
|
|
|
|
|
|
|
[имя]: { |
|
|
|
|
|
изображение: имя, |
|
|
|
|
|
тело: имя, |
|
|
смещение: [-пр[2] / 2, -пр[3] / 2], |
|
|
смещение: [-пр[2] / 2, -пр[3] / 2], |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}); |
|
|
}); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
this.обновитьФизику = function(имя, значение) |
|
|
|
|
|
{ |
|
|
|
|
|
состояние.разобрать({ |
|
|
|
|
|
тела: { |
|
|
|
|
|
[имя]: { |
|
|
|
|
|
физика: значение, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
this.обработатьКлюч = function(ключ, путь, значение) |
|
|
this.обработатьКлюч = function(ключ, путь, значение) |
|
|
{ |
|
|
{ |
|
|
if (путь[0] != "объекты") |
|
|
if (путь[0] != "объекты") |
|
@@ -65,32 +70,26 @@ function Объекты(состояние) |
|
|
} |
|
|
} |
|
|
this.задано[имя][свойство] = значение; |
|
|
this.задано[имя][свойство] = значение; |
|
|
|
|
|
|
|
|
let пр = свойство.startsWith("пр."); |
|
|
|
|
|
if (пр) |
|
|
|
|
|
|
|
|
let производноеИмя = `объекты-${имя}`; |
|
|
|
|
|
|
|
|
|
|
|
if (свойство.startsWith("пр.")) |
|
|
{ |
|
|
{ |
|
|
this.пересоздатьТело(имя); |
|
|
|
|
|
this.обновитьСлежение(имя); |
|
|
|
|
|
|
|
|
let пр = this.пр(имя); |
|
|
|
|
|
this.обновитьПозициюРазмер(производноеИмя, пр); |
|
|
|
|
|
this.обновитьСлежение(производноеИмя, пр); |
|
|
|
|
|
let вид = this.задано[имя]["вид"]; |
|
|
|
|
|
this.обновитьИзображение(производноеИмя, пр, вид); |
|
|
|
|
|
} |
|
|
|
|
|
else if (свойство == "физика") |
|
|
|
|
|
{ |
|
|
|
|
|
this.обновитьФизику(производноеИмя, значение); |
|
|
|
|
|
} |
|
|
|
|
|
else if (свойство == "вид") |
|
|
|
|
|
{ |
|
|
|
|
|
let пр = this.пр(имя); |
|
|
|
|
|
let вид = this.задано[имя]["вид"]; |
|
|
|
|
|
this.обновитьИзображение(производноеИмя, пр, вид); |
|
|
} |
|
|
} |
|
|
this.обновитьИзображение(имя); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
this.пересоздатьТело = function(имя) |
|
|
|
|
|
{ |
|
|
|
|
|
let имяТела = `объекты-${имя}`; |
|
|
|
|
|
let пр = this.пр(имя); |
|
|
|
|
|
состояние.разобрать({ |
|
|
|
|
|
тела: { |
|
|
|
|
|
[имяТела]: { |
|
|
|
|
|
x: пр[0], |
|
|
|
|
|
y: пр[1], |
|
|
|
|
|
ширина: пр[2], |
|
|
|
|
|
высота: пр[3], |
|
|
|
|
|
физика: { |
|
|
|
|
|
isStatic: false, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
this.пр = function(имя) |
|
|
this.пр = function(имя) |
|
|