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())); + } +}; + + +/* + * + * Последовательность + * + */ + + +мир.разобрать(` +#обновить сцену +# уведомить лишь первый раз +#лишь первый раз +# вывести узлы сцены +`); +