объекты
This commit is contained in:
@@ -8,48 +8,53 @@ function Объекты(состояние)
|
||||
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],
|
||||
},
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
this.обновитьФизику = function(имя, значение)
|
||||
{
|
||||
состояние.разобрать({
|
||||
тела: {
|
||||
[имя]: {
|
||||
физика: значение,
|
||||
},
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
this.обработатьКлюч = function(ключ, путь, значение)
|
||||
{
|
||||
if (путь[0] != "объекты")
|
||||
@@ -65,32 +70,26 @@ function Объекты(состояние)
|
||||
}
|
||||
this.задано[имя][свойство] = значение;
|
||||
|
||||
let пр = свойство.startsWith("пр.");
|
||||
if (пр)
|
||||
{
|
||||
this.пересоздатьТело(имя);
|
||||
this.обновитьСлежение(имя);
|
||||
}
|
||||
this.обновитьИзображение(имя);
|
||||
};
|
||||
let производноеИмя = `объекты-${имя}`;
|
||||
|
||||
this.пересоздатьТело = function(имя)
|
||||
{
|
||||
let имяТела = `объекты-${имя}`;
|
||||
let пр = this.пр(имя);
|
||||
состояние.разобрать({
|
||||
тела: {
|
||||
[имяТела]: {
|
||||
x: пр[0],
|
||||
y: пр[1],
|
||||
ширина: пр[2],
|
||||
высота: пр[3],
|
||||
физика: {
|
||||
isStatic: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
if (свойство.startsWith("пр."))
|
||||
{
|
||||
let пр = this.пр(имя);
|
||||
this.обновитьПозициюРазмер(производноеИмя, пр);
|
||||
this.обновитьСлежение(производноеИмя, пр);
|
||||
let вид = this.задано[имя]["вид"];
|
||||
this.обновитьИзображение(производноеИмя, пр, вид);
|
||||
}
|
||||
else if (свойство == "физика")
|
||||
{
|
||||
this.обновитьФизику(производноеИмя, значение);
|
||||
}
|
||||
else if (свойство == "вид")
|
||||
{
|
||||
let пр = this.пр(имя);
|
||||
let вид = this.задано[имя]["вид"];
|
||||
this.обновитьИзображение(производноеИмя, пр, вид);
|
||||
}
|
||||
};
|
||||
|
||||
this.пр = function(имя)
|
||||
|
||||
Reference in New Issue
Block a user