создавать избу из структуры
This commit is contained in:
@@ -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);
|
||||
загрузить ресурсы сцены
|
||||
загрузить ресурсы избы
|
||||
создать сцену
|
||||
задать структуру избы
|
||||
создать избу по структуре
|
||||
создать избу
|
||||
создать полы и стены каркаса
|
||||
создать платформы
|
||||
|
||||
43
игра/200.отладка.js
Normal file
43
игра/200.отладка.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
*
|
||||
* Реакции
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
УведомитьЛишьПервыйРаз = мир =>
|
||||
{
|
||||
if (мир.уведомилиЛишьПервыйРаз)
|
||||
{
|
||||
return;
|
||||
}
|
||||
мир.уведомилиЛишьПервыйРаз = true;
|
||||
мир.уведомить("лишь первый раз");
|
||||
};
|
||||
|
||||
|
||||
ВывестиУзлыСцены = мир =>
|
||||
{
|
||||
var узлы = мир.сцена.children.list;
|
||||
for (var номер in узлы)
|
||||
{
|
||||
var узел = узлы[номер];
|
||||
console.debug(номер + ": " + JSON.stringify(узел.toJSON()));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Последовательность
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
мир.разобрать(`
|
||||
#обновить сцену
|
||||
# уведомить лишь первый раз
|
||||
#лишь первый раз
|
||||
# вывести узлы сцены
|
||||
`);
|
||||
|
||||
Reference in New Issue
Block a user