Browse Source

объекты

tags/4.1
parent
commit
87da5895fe
1 changed files with 49 additions and 50 deletions
  1. +49
    -50
      4.0/игра/180.Объекты.js

+ 49
- 50
4.0/игра/180.Объекты.js View File

@@ -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 (пр)
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(имя)


Loading…
Cancel
Save