создавать избу из структуры
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
<script src="игра/109.управление.js"></script>
|
<script src="игра/109.управление.js"></script>
|
||||||
<script src="игра/110.колобок.js"></script>
|
<script src="игра/110.колобок.js"></script>
|
||||||
<script src="игра/111.изба.js"></script>
|
<script src="игра/111.изба.js"></script>
|
||||||
|
<script src="игра/200.отладка.js"></script>
|
||||||
<script src="игра/499.пуск.js"></script>
|
<script src="игра/499.пуск.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -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 });
|
мир.сцена.sound.play("звук-избы", { loop: true });
|
||||||
|
|
||||||
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
|
|
||||||
|
|
||||||
мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито");
|
мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито");
|
||||||
мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75);
|
мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75);
|
||||||
мир.разбитоеОкно.setVisible(false);
|
мир.разбитоеОкно.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