|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- function создатьУзлыСценыПоСтруктуре(структура)
- {
- for (var имя in структура)
- {
- var узел = null;
- var описание = структура[имя];
-
- var свойства = {};
- Object.assign(свойства, описание);
- delete свойства["тип"];
- delete свойства["x"];
- delete свойства["y"];
- delete свойства["texture"];
- delete свойства["группы"];
- 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();
- }
-
- // Выполняем дополнительные пользовательские действия.
- if (описание.после)
- {
- описание.после(узел);
- }
- }
- }
|