K 0.8.0
This commit is contained in:
55
К/игра/100.структура.js
Normal file
55
К/игра/100.структура.js
Normal file
@@ -0,0 +1,55 @@
|
||||
function создатьУзлыСценыПоСтруктуре(структура)
|
||||
{
|
||||
for (var имя in структура)
|
||||
{
|
||||
var узел = null;
|
||||
var описание = структура[имя];
|
||||
|
||||
var свойства = {};
|
||||
Object.assign(свойства, описание);
|
||||
delete свойства["тип"];
|
||||
delete свойства["x"];
|
||||
delete свойства["y"];
|
||||
delete свойства["texture"];
|
||||
delete свойства["группы"];
|
||||
|
||||
// Создаём узел.
|
||||
if (описание.тип == "изображение")
|
||||
{
|
||||
узел = описание.родитель.add.image(описание.x, описание.y, описание.texture);
|
||||
}
|
||||
else if (описание.тип == "платформа")
|
||||
{
|
||||
узел = описание.родитель.create(описание.x, описание.y, описание.texture);
|
||||
}
|
||||
else if (описание.тип == "спрайт")
|
||||
{
|
||||
узел = описание.родитель.add.sprite(описание.x, описание.y, описание.texture);
|
||||
}
|
||||
|
||||
// Помещаем в группы.
|
||||
for (var номер in описание.группы)
|
||||
{
|
||||
var группа = описание.группы[номер];
|
||||
группа.add(узел);
|
||||
}
|
||||
|
||||
// Задаём имя.
|
||||
узел.name = имя;
|
||||
|
||||
// Выставляем оставшиеся невыставленными свойства.
|
||||
for (var свойство in свойства)
|
||||
{
|
||||
var значение = свойства[свойство];
|
||||
узел[свойство] = значение;
|
||||
}
|
||||
|
||||
// Необходимо после смены originX/Y.
|
||||
узел.updateDisplayOrigin();
|
||||
// Необходимо для статических физических объектов.
|
||||
if ("refreshBody" in узел)
|
||||
{
|
||||
узел.refreshBody();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user