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