From f68873d472c9ee41eba6871445af60cf149c7e2a 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: Thu, 6 May 2021 14:54:27 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B8=D0=B7=D0=B1=D1=83=20=D0=B8=D0=B7=20=D1=81?= =?UTF-8?q?=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 + игра/111.изба.js | 71 +++++++++++++++++++++++++++++++++- игра/200.отладка.js | 43 ++++++++++++++++++++ 3 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 игра/200.отладка.js diff --git a/index.html b/index.html index d17154d..9989dda 100644 --- a/index.html +++ b/index.html @@ -31,6 +31,7 @@ + diff --git a/игра/111.изба.js b/игра/111.изба.js index 5c7151e..111784d 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -30,12 +30,77 @@ // // // // +ЗадатьСтруктуруИзбы = мир => +{ + мир.изба = { + фон: { + тип: "image", + x: 0, + y: 0, + texture: "изба", + originX: 0, + originY: 0, + }, + } +}; + + +// // // // + + +СоздатьИзбуПоСтруктуре = мир => +{ + var структура = мир.изба; + var сцена = мир.сцена; + + for (var имя in структура) + { + var узел = null; + var описание = структура[имя]; + + var свойства = {}; + Object.assign(свойства, описание); + delete свойства["тип"]; + delete свойства["x"]; + delete свойства["y"]; + delete свойства["texture"]; + + // Создаём изображение. + if (описание.тип == "image") + { + узел = сцена.add.image(описание.x, описание.y, описание.texture); + } + // Создаём спрайт. + else if (описание.тип == "sprite") + { + } + + узел.name = имя; + + // Выставляем оставшиеся невыставленными свойства. + for (var свойство in свойства) + { + var значение = свойства[свойство]; + узел[свойство] = значение; + } + + // Необходимо после смены originX/Y. + узел.updateDisplayOrigin(); + + console.debug(имя, описание, узел); + } + + +}; + + +// // // // + + СоздатьИзбу = мир => { мир.сцена.sound.play("звук-избы", { loop: true }); - мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0); - мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито"); мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75); мир.разбитоеОкно.setVisible(false); @@ -550,6 +615,8 @@ console.debug("стрела.x", мир.стрела.x); загрузить ресурсы сцены загрузить ресурсы избы создать сцену + задать структуру избы + создать избу по структуре создать избу создать полы и стены каркаса создать платформы diff --git a/игра/200.отладка.js b/игра/200.отладка.js new file mode 100644 index 0000000..f9e31e6 --- /dev/null +++ b/игра/200.отладка.js @@ -0,0 +1,43 @@ +/* + * + * Реакции + * + */ + + +УведомитьЛишьПервыйРаз = мир => +{ + if (мир.уведомилиЛишьПервыйРаз) + { + return; + } + мир.уведомилиЛишьПервыйРаз = true; + мир.уведомить("лишь первый раз"); +}; + + +ВывестиУзлыСцены = мир => +{ + var узлы = мир.сцена.children.list; + for (var номер in узлы) + { + var узел = узлы[номер]; + console.debug(номер + ": " + JSON.stringify(узел.toJSON())); + } +}; + + +/* + * + * Последовательность + * + */ + + +мир.разобрать(` +#обновить сцену +# уведомить лишь первый раз +#лишь первый раз +# вывести узлы сцены +`); +