diff --git a/index.html b/index.html index 9989dda..2f86724 100644 --- a/index.html +++ b/index.html @@ -27,6 +27,7 @@
+ diff --git a/игра/100.структура.js b/игра/100.структура.js new file mode 100644 index 0000000..8e4cab3 --- /dev/null +++ b/игра/100.структура.js @@ -0,0 +1,45 @@ +function создатьУзлыСценыПоСтруктуре(структура) +{ + for (var имя in структура) + { + var узел = null; + var описание = структура[имя]; + + var свойства = {}; + Object.assign(свойства, описание); + delete свойства["тип"]; + delete свойства["x"]; + delete свойства["y"]; + delete свойства["texture"]; + + // Создаём узел. + if (описание.тип == "изображение") + { + узел = описание.родитель.add.image(описание.x, описание.y, описание.texture); + } + else if (описание.тип == "платформа") + { + узел = описание.родитель.create(описание.x, описание.y, описание.texture); + } + else if (описание.тип == "спрайт") + { + } + + узел.name = имя; + + // Выставляем оставшиеся невыставленными свойства. + for (var свойство in свойства) + { + var значение = свойства[свойство]; + узел[свойство] = значение; + } + + // Необходимо после смены originX/Y. + узел.updateDisplayOrigin(); + // Необходимо для статических физических объектов. + if ("refreshBody" in узел) + { + узел.refreshBody(); + } + } +} diff --git a/игра/111.изба.js b/игра/111.изба.js index 9f73701..cb81b35 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -106,65 +106,10 @@ // // // // -СоздатьИзбуПоСтруктуре = мир => -{ - var структура = мир.изба; - var сцена = мир.сцена; - - for (var имя in структура) - { - var узел = null; - var описание = структура[имя]; - - var свойства = {}; - Object.assign(свойства, описание); - delete свойства["тип"]; - delete свойства["x"]; - delete свойства["y"]; - delete свойства["texture"]; - - // Создаём узел. - if (описание.тип == "изображение") - { - узел = описание.родитель.add.image(описание.x, описание.y, описание.texture); - } - else if (описание.тип == "платформа") - { - узел = описание.родитель.create(описание.x, описание.y, описание.texture); - } - else if (описание.тип == "спрайт") - { - } - - узел.name = имя; - - // Выставляем оставшиеся невыставленными свойства. - for (var свойство in свойства) - { - var значение = свойства[свойство]; - узел[свойство] = значение; - } - - // Необходимо после смены originX/Y. - узел.updateDisplayOrigin(); - // Необходимо для статических физических объектов. - if ("refreshBody" in узел) - { - узел.refreshBody(); - } - - console.debug(имя, описание, узел); - } - - -}; - - -// // // // - - СоздатьИзбу = мир => { + создатьУзлыСценыПоСтруктуре(мир.изба); + мир.сцена.sound.play("звук-избы", { loop: true }); мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито"); @@ -630,7 +575,6 @@ console.debug("стрела.x", мир.стрела.x); загрузить ресурсы избы создать сцену задать структуру избы - создать избу по структуре создать избу создать платформы позволить платформам пропускать прыжки