Browse Source

функция структуры

master
parent
commit
065f96628d
3 changed files with 48 additions and 58 deletions
  1. +1
    -0
      index.html
  2. +45
    -0
      игра/100.структура.js
  3. +2
    -58
      игра/111.изба.js

+ 1
- 0
index.html View File

@@ -27,6 +27,7 @@
<div id="родитель"></div> <div id="родитель"></div>
<script src="игра/001.мир.js"></script> <script src="игра/001.мир.js"></script>
<script src="игра/011.phaser.js"></script> <script src="игра/011.phaser.js"></script>
<script src="игра/100.структура.js"></script>
<script src="игра/108.группы.js"></script> <script src="игра/108.группы.js"></script>
<script src="игра/109.управление.js"></script> <script src="игра/109.управление.js"></script>
<script src="игра/110.колобок.js"></script> <script src="игра/110.колобок.js"></script>


+ 45
- 0
игра/100.структура.js View File

@@ -0,0 +1,45 @@
function создатьУзлыСценыПоСтруктуре(структура)
{
for (var имя in структура)
{
var узел = null;
var описание = структура[имя];

var свойства = {};
Object.assign(свойства, описание);
delete свойства["тип"];
delete свойства["x"];
delete свойства["y"];
delete свойства["texture"];

// Создаём узел.
if (описание.тип == "изображение")
{
узел = описание.родитель.add.image(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "платформа")
{
узел = описание.родитель.create(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "спрайт")
{
}

узел.name = имя;

// Выставляем оставшиеся невыставленными свойства.
for (var свойство in свойства)
{
var значение = свойства[свойство];
узел[свойство] = значение;
}

// Необходимо после смены originX/Y.
узел.updateDisplayOrigin();
// Необходимо для статических физических объектов.
if ("refreshBody" in узел)
{
узел.refreshBody();
}
}
}

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

@@ -106,65 +106,10 @@
// // // // // // // //




СоздатьИзбуПоСтруктуре = мир =>
{
var структура = мир.изба;
var сцена = мир.сцена;

for (var имя in структура)
{
var узел = null;
var описание = структура[имя];

var свойства = {};
Object.assign(свойства, описание);
delete свойства["тип"];
delete свойства["x"];
delete свойства["y"];
delete свойства["texture"];

// Создаём узел.
if (описание.тип == "изображение")
{
узел = описание.родитель.add.image(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "платформа")
{
узел = описание.родитель.create(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "спрайт")
{
}

узел.name = имя;

// Выставляем оставшиеся невыставленными свойства.
for (var свойство in свойства)
{
var значение = свойства[свойство];
узел[свойство] = значение;
}

// Необходимо после смены originX/Y.
узел.updateDisplayOrigin();
// Необходимо для статических физических объектов.
if ("refreshBody" in узел)
{
узел.refreshBody();
}
console.debug(имя, описание, узел);
}


};


// // // //


СоздатьИзбу = мир => СоздатьИзбу = мир =>
{ {
создатьУзлыСценыПоСтруктуре(мир.изба);

мир.сцена.sound.play("звук-избы", { loop: true }); мир.сцена.sound.play("звук-избы", { loop: true });


мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито"); мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито");
@@ -630,7 +575,6 @@ console.debug("стрела.x", мир.стрела.x);
загрузить ресурсы избы загрузить ресурсы избы
создать сцену создать сцену
задать структуру избы задать структуру избы
создать избу по структуре
создать избу создать избу
создать платформы создать платформы
позволить платформам пропускать прыжки позволить платформам пропускать прыжки


Loading…
Cancel
Save