Browse Source

создавать избу из структуры

master
parent
commit
f68873d472
3 changed files with 113 additions and 2 deletions
  1. +1
    -0
      index.html
  2. +69
    -2
      игра/111.изба.js
  3. +43
    -0
      игра/200.отладка.js

+ 1
- 0
index.html View File

@@ -31,6 +31,7 @@
<script src="игра/109.управление.js"></script>
<script src="игра/110.колобок.js"></script>
<script src="игра/111.изба.js"></script>
<script src="игра/200.отладка.js"></script>
<script src="игра/499.пуск.js"></script>
</body>
</html>

+ 69
- 2
игра/111.изба.js View File

@@ -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
- 0
игра/200.отладка.js View File

@@ -0,0 +1,43 @@
/*
*
* Реакции
*
*/


УведомитьЛишьПервыйРаз = мир =>
{
if (мир.уведомилиЛишьПервыйРаз)
{
return;
}
мир.уведомилиЛишьПервыйРаз = true;
мир.уведомить("лишь первый раз");
};


ВывестиУзлыСцены = мир =>
{
var узлы = мир.сцена.children.list;
for (var номер in узлы)
{
var узел = узлы[номер];
console.debug(номер + ": " + JSON.stringify(узел.toJSON()));
}
};


/*
*
* Последовательность
*
*/


мир.разобрать(`
#обновить сцену
# уведомить лишь первый раз
#лишь первый раз
# вывести узлы сцены
`);


Loading…
Cancel
Save