From 065f96628d4576b3ccd175ed7f39c8c0119d96dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Fri, 7 May 2021 14:14:22 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 1 + игра/100.структура.js | 45 ++++++++++++++++++++++ игра/111.изба.js | 60 +----------------------------- 3 files changed, 48 insertions(+), 58 deletions(-) create mode 100644 игра/100.структура.js 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); загрузить ресурсы избы создать сцену задать структуру избы - создать избу по структуре создать избу создать платформы позволить платформам пропускать прыжки